android华为手机虚拟键盘盖住底部,Android 虚拟键盘遮挡住页面问题我遇到的坑及个人解决办法...

场景:某个页面多个组件。总体排版正好凑成满屏。一切按照UI给的标注效果图来。大部分机型测试通过。没有问题。华为手机有问题

兼容性:华为手机修改了虚拟键盘的位置。用户可以自由控制显示与隐藏虚拟键盘出现在屏幕底部。会遮挡住部分页面

如下图:

5d6ff74c47082084ce5c2fd1d4e8ae37.png

用户协议部分被虚拟键盘遮挡了。

通过网上查询:大部分介绍解决办法是:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);android:fitsSystemWindows="true"

个人通过依次添加。尝试。。发现并无卵用。

其他介绍也没有好的解决方案。

最后通过查询尝试:

发现原因在于。。个人使用的是没有考虑虚拟键盘情况下的标注图,并且 使用线性布局LinearLayout就;  因为此布局是一直顺序排版下去的。按照标注占满全屏。所以尝试修改了布局为相对布局:从俩边开始布局,向中间靠拢。。最后发现问题解决。布局的话举个例子比较直观。

1、有问题的布局(LinearLayout):

2、修改后的布局(RelativeLayout)

最后在demo 中发现效果并没有实现。。

原来。还差了一步。项目中设置了theme。activity 的 theme 的设置。尝试几个试试

android:theme="@style/Theme.Design.NoActionBar"

上面的theme是可以。

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

这个也可以。。都没有遮挡的问题。

我自己项目中的是的是沉浸式处理。

使用的是

android:theme="@style/AppTheme.TranslucentStatus"

825eb9a4efd6e516ed9e2d30c0230f9b.png

这个api 19的问题里添加的模块。

具体 还有那些theme可以使用。我并没有测试。大家需要的话请自行研究

最后:发一下成功了以后的效果图

15217f3403621bbff79d2bfdd06b4f42.png

上面华为荣耀9 青春版。隐藏虚拟键盘情况下截图

b19c2ac51cc6ca81529f94973a6ce589.png

上面是华为荣耀9 青春版。虚拟键盘存在情况下的 效果图。

总结:像我这种情况。就是修改布局为RelativeLayout

+设置activity的theme    问题解决

每个人遇到的具体情景不同。解决办法也不相同。希望我的经历能帮到你

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值