Android软键盘相关问题
一软键盘自动弹出和关闭
- 软键盘的自动弹出
虽然上述代码可以使得软键盘自动弹出,但是对于界面比较复杂的情况的时候,软键盘可能无法正常的弹出,需要延迟加载,即在界面加载完成之后弹出软键盘。
延迟加载可以使用Handler或者定时器schedule来实现。 - 软键盘的关闭
关闭软键盘的代码如下:
二、进入Activity自动弹出软键盘
为了实现进入某个包含了EditText控件Activity的时候,能够自动的弹出软键盘的需求,可以在AndroidManifest.xml文件中,在对应的Activity的属性中进行如下设置android:windowSoftInputMode = “stateVisible”。
具体例子如下:
三、自定义Dialog弹出软键盘问题
自定义一个Dialog的时候,若该Dialog包含了一个EditText控件,并且要求当弹出该Dialog时,自动弹出软键盘。
对于这个问题,即使EditText获取到了焦点并且使用了一中自动弹出软键盘的代码,依旧无法解决,一个有效的解决方案如下:
四、软键盘把某些布局挤上去的问题
Activity中有一个关于软键盘的属性为windowSoftInputMode,其中2个比较重要的是adjustPan和adjustResize。
adjustPan不会把底部的布局给挤上去,例如RelateLayout布局中放到bottom的布局。
adjustResize是自适应,会把底部的挤上去。
因此设置Activity的windowSoftInputMode属性为adjustPan,即可解决软键盘把底部布局给挤上去的问题:
(更多的问题,待日后更新)