<!--状态栏不覆盖在ContentView上-->
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<!--设置系统状态栏为透明-->
<item name="android:windowTranslucentStatus">true</item>
//状态栏透明并覆盖在ContentView上(4.4 以上的属性)
<item name="android:windowTranslucentStatus">true</item>
<!--状态栏不覆盖在ContentView上-->
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
//设置状态栏颜色(5.0 以上的属性)
<item name="android:statusBarColor">@android:color/transparent</item>
小结:
<!--状态栏是否覆盖在ContentView上-->
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<!--设置系统状态栏是否为透明-->
<item name="android:windowTranslucentStatus">true</item>
<!--设置系统状态栏颜色-->
<item name="android:statusBarColor">@color/colorAccent</item>
其中:
布局文件中的这句代码
android:fitsSystemWindows="true"
和style里面的这句代码等价
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
而且:
// 经测试在代码里直接声明透明状态栏更有效
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);//状态栏变透明
}