前言
Android沉浸式体验有几个注意点
- Android4.4(api19)及以上的版本才支持
 - Android5.0(api21)及以上的版本状态栏多了一个半透的黑色层
 - Android5.0(api21)的黑色层通过style去掉后 应用切出去后再切进来后会再次出现
 
我的解决方案
目前这种方案 不管是各个版本 还是是否有侧滑都没有问题
首先先建两个文件夹 layout-v19和values-v19
之所以不添加values-v21是因为 Android5.0(api21)的黑色层通过style去掉后 应用切出去后再切进来后会再次出现
所以用代码去除
values文件夹下的styles.xml
1  | <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">  | 
values-v19文件夹下的styles.xml
1  | <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">  | 
onCreate方法中添加(Kotlin代码)
用这种方式去除Android5.0以上 状态栏的黑色半透层 在重新切回应用时也不会被再次添上
1  | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  | 
接下来就是设置状态栏的背景了
我的方式是建了适配api19前后的两个layout文件直接添加到了页面中
layout文件夹下的zj_statusbar.xml
1  | 
  | 
layout-19文件夹下的zj_statusbar.xml
1  | 
  | 
不建议用以下方式(在有侧滑的时候有问题)
1  | android:fitsSystemWindows="true"  | 
这种方式首先最外层必须要设置为背景色 它会用该背景色来填充状态栏和虚拟按键栏
一个页面只有一个该属性会生效 如果页面有侧滑的时候不太好处理