实现android4.4沉浸式标题栏

查阅各大网站,最后结合自己的时间,总结出了两种可行的方法

一.修改样式文件:

1.增加values-v19文件夹,再其中的styles.xml中加上:

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- toolbar(actionbar)颜色 -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <!-- 状态栏颜色 -->
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <!-- toolbar标题颜色 -->
        <item name="android:textColorPrimary">@color/white</item>
        <!-- 窗口的背景颜色 -->
        <item name="android:windowBackground">@color/colorPrimary</item>
        <!-- translucent system bars-->
        <item name="android:windowTranslucentStatus" >true</item>
        <item name="android:windowTranslucentNavigation">true</item>
    </style>

二.使用开源库

1.android studio中加入依赖:

compile com.readystatesoftware.systembartint:systembartint:1.0.3

2.在activity的onCreate()中调用下面方法:

   /**
     * Apply KitKat specific translucency.
     */
    private void applyKitKatTranslucency() {

        // KitKat translucent navigation/status bar.
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            setTranslucentStatus(true);
            SystemBarTintManager mTintManager = new SystemBarTintManager(this);
            mTintManager.setStatusBarTintEnabled(true);
            mTintManager.setNavigationBarTintEnabled(true);
            // mTintManager.setTintColor(0xF00099CC);
            mTintManager.setTintDrawable(UIElementsHelper
                    .getGeneralActionBarBackground(this));

        }

    }

    @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

使用以上两个方法的最后,都要在主布局中加上:

android:fitsSystemWindows="true"

否则标题栏是白色的。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。