1.在Android多个系统版本兼容的情况下,选择一款合适的方案做通知栏时很关键的,话不多说直接上三方库https://github.com/gyf-dev/ImmersionBar
2.问题一般我们设置是在基类中的OnCreate方法声明,在OnDestory方法中销毁,但是有的时候页面需要沉浸式,或者不一样的通知栏,之前我也觉得是直接在子类Activity中再声明一遍不就OK了,结果没个卵用
用法:
创建
ImmersionBar.with(this)
.statusBarColor(R.color.transparent) //状态栏颜色,不写默认透明色
.statusBarDarkFont(true) //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持
状态栏字体变色,会使当前状态栏加上透明度,否则不执行透明度
.fitsSystemWindows(true)
.keyboardEnable(true)
.navigationBarColor(R.color.virtual_buttons)
.init();
销毁
ImmersionBar.with(this).destroy();
3.加入子类activity要沉浸式代码怎么办呢
-在oncreat方法中先销毁
ImmersionBar.with(this).destroy();
ImmersionBar.with(this)
.titleBar(null, false)
//.transparentBar()
.statusBarDarkFont(true)
//.fullScreen(true)
.navigationBarColor(R.color.virtual_buttons)
.init();
-接着在onDestroy()中销毁
ImmersionBar.with(this).destroy();
4.这样就行了,如果需要更炫酷的用法就去看看文档和demo,很实用