安卓软键盘弹出,Activity背景被压缩的解决办法

最近做个登录页,背景不是纯色,而是一张图片,然后输入框靠近下方,点击的时候,页面会全部被推上去,这咋能行捏?于是乎设置 android:windowSoftInputMode 属性。设置一顿,还是不行,然后又用ScrollView嵌套等等,最后要么是输入框不动,背景被推上去;要么是背景跟输入框都推上去;要么就是输入框被遮挡,反正是各种不符合预期。

谷歌了半小时,也没找到个完美的解决办法。

于是乎考虑了一下,弹出软键盘,View的大小变了,那DecorView变不变呢?

没有验证,直接很暴力的在 onCreate时

getWindow().getDecorView().setBackgroundResource(R.mipmap.背景);

然后去掉xml里的背景,输入框该用ScrollView嵌套的就继续嵌套。

Activity的

android:windowSoftInputMode="adjustResize|stateHidden" 让Activity可以自由压缩,背景是设置在DecorView上了,这个不会压缩

至此,背景就不会被软键盘弹出而压缩了,输入框也不会被遮挡,在ScrollView里可以自由移动。

我的问题就这么解决了~

只是其他版本有没有效果暂时不清楚,Android 8.0测试没问题,不好用的可以留言反馈,防止误导他人。

核心就一句话,没啥代码可放。也不知道兼容性如何~也不知道会有啥副作用~

 

借用别人的图说一下,需求就是这样子的:

左边是未弹出软键盘,中间是默认情况下弹出软键盘(不符合预期),右边才是想要的正常效果。

图一       图二       图三

参考了若干资料:

https://blog.csdn.net/sonwfly/article/details/68945118  就是上面图片的来源,若干个输入框的时候貌似有问题。

https://blog.csdn.net/harryweasley/article/details/50266749   这个我测试的时候乱跳,就没详细研究。

https://blog.csdn.net/learningcoding/article/details/70755743 这个感觉好麻烦,还得重写控件,而且感觉阻止改变大小有点奇怪。。

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值