关于Android适配华为等带有底部虚拟按键的解决方案
2017-07-07 10:30
405 查看
http://blog.csdn.NET/a91694451/article/details/50469857
最近公司的项目里遇到了一个问题,就是最后适配的时候时候同事的华为手机时,由于底部带有虚拟按键,所以正好遮住了底部导航栏的按钮以及其他子页面的一些存在于底部的功能。
也在网上找了些解决方案,但是不是很完美,下面说下我的解决步骤。
首先我找到了一个方案,说是在布局富容器中添加一句话
Android:fitsSystemWindows="true"
通过这句话让布局容器来适应手机屏幕,加上了之后,果然管用,底部导航栏确实在虚拟按键弹出时也跟随弹上来了,但是样式很丑,虚拟按键的背景色是为透明色,看起来很不美观,不像其他应用那样是黑色的。
在继续往下找,最后发现,是因为我在项目中设置了沉浸式通知栏导致的,取消掉了,果然好了,而且也不需要 Android:fitsSystemWindows="true"这句话就能完美适配了。
以上是我的解决方法,但是又有一个问题,就是沉浸式通知栏和底部虚拟按键不能共存么?如果有大神看到了,求解答。
还有一个办法,对界面的windows对象使用以下方法:
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
最近公司的项目里遇到了一个问题,就是最后适配的时候时候同事的华为手机时,由于底部带有虚拟按键,所以正好遮住了底部导航栏的按钮以及其他子页面的一些存在于底部的功能。
也在网上找了些解决方案,但是不是很完美,下面说下我的解决步骤。
首先我找到了一个方案,说是在布局富容器中添加一句话
Android:fitsSystemWindows="true"
通过这句话让布局容器来适应手机屏幕,加上了之后,果然管用,底部导航栏确实在虚拟按键弹出时也跟随弹上来了,但是样式很丑,虚拟按键的背景色是为透明色,看起来很不美观,不像其他应用那样是黑色的。
在继续往下找,最后发现,是因为我在项目中设置了沉浸式通知栏导致的,取消掉了,果然好了,而且也不需要 Android:fitsSystemWindows="true"这句话就能完美适配了。
以上是我的解决方法,但是又有一个问题,就是沉浸式通知栏和底部虚拟按键不能共存么?如果有大神看到了,求解答。
还有一个办法,对界面的windows对象使用以下方法:
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
相关文章推荐
- 关于Android适配华为等带有底部虚拟按键的解决方案
- 关于Android适配华为等带有底部虚拟按键的解决方案
- 关于Android适配华为等带有底部虚拟按键的解决方案
- 安卓类似华为手机适配底部虚拟按键的解决方案
- 安卓类似华为手机适配底部虚拟按键的解决方案
- Android带虚拟按键的手机不认res/values的屏幕适配解决方案
- Android适配底部返回键等虚拟键盘的完美解决方案
- 华为手机适配底部虚拟按键的解决方案
- Android适配底部返回键等虚拟键盘的完美解决方案
- 界面适配华为手机的虚拟按键的解决方案
- Android适配底部返回键等虚拟键盘的完美解决方案
- 界面适配华为手机的虚拟按键的解决方案
- Android适配底部虚拟按键的方法
- 关于android 7.0全面屏,底部虚拟导航键 适配问题
- 关于 Android 中ScrollView中带有ListView 或者是Gridview的子视图的问题解决方案
- 关于android屏幕适配的解决方案
- 界面适配华为手机的虚拟按键的解决方案
- Android适配底部虚拟按键的方法详解
- android适配pad和部分手机底部虚拟按键+沉浸式状态栏
- android虚拟按键和沉浸式状态栏冲突等代码解决方案(eg:死坑华为)