android按钮布局无效,android巨坑:沉浸的状态栏,布局不重叠的虚拟按键

前提

前两天刚写过一个沉浸状态栏的文章

地址:修改状态栏的颜色和字体颜色

今天拿来做适配,发现谷歌自家的,华为等品牌手机有虚拟按键,图中就能看出,虚拟按键完全把我的BottomNavigationView盖住了。

我是在style中设置沉浸效果,同时配合链接中的工具类进行部分机型的适配,是同样设置的请往下看解决方法。

style设置沉浸的代码

true

true

@android:color/transparent

AAffA0nNPuCLAAAAAElFTkSuQmCC

模拟器版本 原生9.0.png

解决虚拟按键遮挡布局方法

修改style中的windowTranslucentNavigationfalse

AAffA0nNPuCLAAAAAElFTkSuQmCC

修改后.png

修改之后,虚拟按键的确没有盖住布局了,可是我的状态栏不变色了

这里比较纳闷,只改了navigation而已,却影响到了statusBar。

解决状态栏沉浸失效方法

我们使用UI FLAG给布局添加SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,让布局占据状态栏的空间

注意,这两个必须结合使用。/**

* style的windowTranslucentNavigation设置为false后,状态栏无法达到沉浸效果

* 设置UI FLAG 让布局能占据状态栏的空间,达到沉浸效果

*/

int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

activity.getWindow().getDecorView().setSystemUiVisibility(option);

AAffA0nNPuCLAAAAAElFTkSuQmCC

修改UI FLAG后.png

OK,现在状态栏是沉浸的效果,虚拟按键也不会遮挡我的布局。

总结

碰到这个问题,看的文章不下几十篇,因为业务代码写法的前提不同,需要解决的方式也不同。而且android版本跨度大,机型多,总有部分设备效果不尽如人意。而且UI FLAG的种类繁多,我看了源码也没搞清楚他们之间的关联~

作者:space0o0

链接:https://www.jianshu.com/p/f36900c70250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值