Android 软键盘弹出时布局内指定内容上移实现及问题解决

解决Android软键盘遮挡问题

Android SDK目前提供的软键盘弹出模式接口只有两种:

一是弹出时自动回冲界面,将所有元素上顶,

一种则是不重绘界面,直接将控件元素遮住,


没有其他模式,如果想实现其他效果,光使用系统接口是不行的。


解决方法:


第一步:给想要被顶上去的内容嵌套一个 ScrollView :


<ScrollView

  android:layout_width="match_parent"

  android:layout_height="0dp"

  android:layout_weight="1"

  android:scrollbars="none" 

  >

   

  …… 想要被顶上去的内容 ……

   

</ScrollView>


第二步:在  文件中给对应的 Activity 设置 android:windowSoftInputMode="adjustResize"


一些机型到这里问题就已经解决了!


有些机型会出现点击过 EditView 它获得了焦点也弹出了软键盘,

但是收回软键盘后,再点击该 EditView 会出现被软键盘遮挡的情况,

点其它 EditView 后,再来点该 EditView 又恢复正常不再被遮挡,

为了解决此问题见如下:


第三步:

发现去掉 ScrollView 的 android:scrollbars="none" 属性后问题就解决了!

但会出现滚动条,所以这个属性不能去掉,

只需在 Activity 的 onCreate 事件处理函数中的 setContentView 方法后紧跟着写上


getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);


即可解决此问题!


转载于:https://my.oschina.net/u/2607809/blog/658663

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值