Android状态栏的适配汇总状态栏的适配汇总
1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏:要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏:
Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态
栏,然后直接使用方法 setStatusBarColor() 把系统状态栏设置成透明就好了。
Android 4.4 ~ Android 5.0 :添加了属性 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) 可以让状
态栏变成透明,并且使我们们的内容布局延伸到系统状态栏。这个属性虽然也可以在 Android 5.0 及其以后版本的手机上使
用,但是效果不是我们想要的。
在 Android 4.4 之前是不支持透明状态栏
需要注意的一点是在设置透明状态栏的情况下,是需要我们的内容布局延伸到状态栏的,因此这个时候使用
fitSystemWindows 这个属性是没有意义的,只会使得出现各种奇葩的效果。
2.状态栏颜色和我们布局颜色搭配状态栏颜色和我们布局颜色搭配
其实在有的时候,我们是不需要把我们的内容布局延伸到系统状态栏的,只是需要系统状态栏和我们的内容布局的颜色搭配起
来。
**Android 5.0 及其以后版本:**直接通过 setStatusBarColor() 或者 修改colorPrimaryDark 对应的颜色,把系统状态栏颜色设
置成搭配的颜色就可以了
**Android 4.4 ~ Android 5.0:**这个版本其实是不允许直接修改状态栏的颜色的,只不过我们利用了一种巧妙的方法,感觉是
修改了状态栏的颜色而已。通过 getWindow().addFlags(WindowManager.LayoutParams.FALG_TRANSLUCENT_STATUS) 是状态栏透
明,并且我们的布局也会延伸到状态栏,给我们的内容布局设置一个 padding,给这个 padding 设置一个合适的颜色来充当系
统状态栏的颜色就可以了。
Android 4.4 之前是不支持修改的
其实状态栏的适配无外乎这两点了,注意一定要针对不同的 Android 版本使用不同的方法,不可乱用,不可混用,不然会有各
种奇葩效果!
效果图效果图
Android 4.4 以前以前
状态栏永远是黑底白字,没有方法改变。上面的所有的方法也是不适用的。