沉浸式状态栏导致华为手机虚拟按钮被遮挡的解决办法

使用了沉浸式状态栏可以让应用给人浑然天成的感觉,是比较好的用户体验,从android 4.4 版本后才能使用城近视状态栏,具体表现是,4.4上是渐变色,5.0以后是全透明。

效果如下:


效果还是挺好的,那么怎么实现的呢?

很简单,就几行代码就能搞定。

我们只需要在基类BaseActivity的onCreate()方法中这样写:


if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.KITKAT) {

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//透明状态栏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//透明底部导航栏

}

然后新建的Activity继承BaseActivity就行了。

注意:布局文件里不能使用android:fitsSystemWindows="true",否则,状态栏会出现黑块。


但是如果你使用的是华为手机或者谷歌亲儿子Nexus及pixel,那么你会发现一个问题,就是底部三个虚拟按钮被无情的遮挡了,像这样:


WHT?那怎吗解决呢,很简单,因为我们再实现沉浸式的时候多写了一句话,

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//透明底部导航栏

就是这一句话了,这里我们把这句话去掉就会恢复正常了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容