标题栏,导航栏的2个属性,沉浸式相关

不覆盖且为透明


<item name="android:windowDrawsSystemBarBackgrounds">falseitem>

<item name="android:windowTranslucentStatus">trueitem>

标题栏,导航栏的2个属性,沉浸式相关_第1张图片

覆盖

//状态栏透明并覆盖在ContentView上(4.4 以上的属性)
<item name="android:windowTranslucentStatus">trueitem>

这里写图片描述

不覆盖且设置颜色


<item name="android:windowDrawsSystemBarBackgrounds">falseitem>
//设置状态栏颜色(5.0 以上的属性)
<item name="android:statusBarColor">@android:color/transparentitem>

标题栏,导航栏的2个属性,沉浸式相关_第2张图片

小结


<item name="android:windowDrawsSystemBarBackgrounds">trueitem>

<item name="android:windowTranslucentStatus">trueitem>

<item name="android:statusBarColor">@color/colorAccentitem>

PS.

布局文件中的这句代码

 android:fitsSystemWindows="true"

和style里面的这句代码等价

<item name="android:windowDrawsSystemBarBackgrounds">trueitem>

代码里设置透明度

// 经测试在代码里直接声明透明状态栏更有效
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
   WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
   localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);//状态栏变透明
}

你可能感兴趣的:(android)