输入法遮挡问题
解决输入法遮挡的问题 基本上有两种
adjustResize
+ScrollView
adjustPan
adjustPan
会把页面整体上推
adjustResize
则是缩放可调整页面 所以要和ScrollView
配合 但是如果界面设成全屏模式就不会生效
解决方式
在非全屏模式(即状态栏不透明)
下,将activity
的windowSoftInputMode
的属性设置为:adjustResize
。同时在View
的onSizeChanged(int w, int h, int oldw, int oldh)
里可以得到变化后的尺寸,然后根据前后变化的结果来计算屏幕需要移动的距离。
即添加:
1 | android:windowSoftInputMode="adjustResize" |
但是在全屏模式
下,即使将activity
的windowSoftInputMode
的属性设置为:adjustResize
。
在键盘显示时它未将Activity的Screen向上推动,所以你Activity
的view
的根树的尺寸是没有变化的。
在这种情况下,你也就无法得知键盘的尺寸,对根view的作相应的推移。
全屏下的键盘无法Resize的问题从2.1就已经存在了,直到现在google还未给予解决。
有人已经封装好了该类,你只需引用就OK了,我们来看下这个类。
1 | public class SoftHideKeyBoardUtil { |
使用方法
在你的Activity
的onCreate()
方法里调用即可
1 | SoftHideKeyBoardUtil.assistActivity(this); |
注意:在
setContentView(R.layout.xxx)
之后调用