4.4-5.0的设置:
通过 addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
在布局里设置fitSystemWindow=true
5.0以后已经支持直接修改状态栏背景颜色和底部导航栏背景颜色。
window.setStatusBarColor(Color.WHITE);//设置状态栏颜色
window.setNavigationBarColor(Color.WHITE);// 自己设置导航栏颜色
6.0以后可以设置状态栏字体亮度,8.1以后可以设置导航栏字体亮度
(先不写代码了,后面有代码,可以下载)
对于5.0以后如果个别页面需要布局延伸到状态栏,比如欢迎页面的图片需要延伸到状态栏。
此时需要单独配置
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
并且不能设置fitSystemWindow=true
但是这样做,会有一堆bug。
第一:4.4-5.0部分手机上可能会出现状态栏一片白的情况。可能会出现导航栏遮挡布局的情况。
第二:5.0-6.0部分手机上可能会出现状态栏一片白的情况。因为5.0就可以设置状态栏背景颜色,但是6.0才能设置状态栏字体的明暗程度。
第三:5.0-8.1部分手机上可能会出现导航栏一片白的情况。因为5.0就可以设置导航栏背景颜色,但是8.1才能设置导航栏字体的明暗程度。
设置沉浸式布局后,手机状态栏或导航栏出现白屏。-Android文档类资源-CSDN下载
经过修改,4.4-6.0部分手机上可能会出现状态栏一片白的情况。可能会出现导航栏遮挡布局的情况。
6.0以上的手机不再出现状态栏或导航栏白屏问题。理论上也不会出现导航栏遮挡布局的情况。
因为导航栏遮挡布局,是因为设置了
addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
现在bug已经被压缩到了4.4-6.0手机上。对于导航栏遮挡布局,网上有很多方法,不知道管不管用。因为没有低版本测试机,无法测试。