这里主要解释一下糟糕的沉浸状态栏实现,在多次查阅和实践后了解后,多处文章是这样写的:
1.在主布局DrawerLayout中android:fitsSystemWindows="true";
2.然后设置状态栏透明:
(一是item中设置<item name="android:windowTranslucentStatus">true</item>
二是在onCreate()中getWindow().setStatusBarColor(Color.TRANSPARENT);//状态栏透明
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);//Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住+保持整个View稳定, 常和控制System UI悬浮, 隐藏的Flags共用, 使View不会因为System UI的变化而重新layout
)
但是实践后,状态栏透明,侧滑部分状态栏仍然有黑条,解决办法是:
主布局:DrawerLayout中android:fitsSystemWindows="false";//很奇怪~
onCreate()中:
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
成功沉浸~~