Manifest.xml文件windowSoftInputMode的adjustPan属性无效的解决方法

windowSoftInputMode的adjustPan无效问题研究

问题

最近在修改原生Launcher3的遇到一个问题,项目要求修改桌面文件夹时,弹出输入法会挡住输入框,所以要求输入框也随着输入法一起往上移.其实原生的Launcher3是做了适配加了android:windowSoftInputMode="adjustPan"属性的,可惜使用时发现只有前一两次呼出输入法时,输入框才会一起上移,后面就不行了,需要进入其他应用返回后才恢复.就像这样:

image

环境

Android 4.4

原因

找了很久,几经各种注释排除发现原来和EditText的属性值有关.

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:gravity="center_horizontal"
        android:singleLine="true"
        />
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

发现singleLine属性和gravity属性在一起用的时候,就有可能出现上述问题,然而也不是必然会出现,测试了left和center_vertical都是没有问题的,但是center_horizontal,center,right都存在问题.

解决办法

singleLine属性是已经被谷歌遗弃的属性,把singleLine=”true”换成maxLines=”1”,问题便解决了.

image

注意

  • 在自己Android 7.0的手机上发现,用singleLine属性也并没有这个问题,或许以上问题只有在Android4.4及以前才会出现.

总结

  • Google弃用一些属性的时候,总会有原因的,这次的问题说明,应当尽量使用新方法是替代被摒弃的方法,或者了解清楚方法为何被摈弃的原因.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值