Android软键盘不用时还好,感觉没什么问题,但是当你需要根据业务需求调节软件盘来达到你的期望时,你会发现,我去这么烦。今天我们就来理一理关于Android软键盘的一些知识。这篇博客先介绍最简单最基本的windowSoftInputMode属性。
windowSoftInputMode属性时Android定义的属性,用来设置activity主窗口与软键盘的交互模式。可以在maifest.xml文件中使用:
<activity
android:name=".activity.MainActivity"
android:windowSoftInputMode="stateVisible|adjustPan">
可以看到该属性包含两个部分,以state开头的控制软键盘的状态(显示或隐藏),以adjust开头的控制Activity主窗口的调整模式,以便滕出空间显示软键盘。
状态值:
stateUnspecified:未指定状态(默认设置),软键盘的状态没有被指定,系统会选择一个合适的状态或者依赖于主题的设置
stateUnchanged:不改变状态,当前界面的软键盘状态,取决于上一个界面的软键盘状态,无论是隐藏还是显示
stateHidden:隐藏状态,当用户导航到该Activity时(不是返回到该Activity),软键盘被隐藏。
stateAlwaysHidden:总是隐藏状态,当该Activity获得焦点时(不管是导航到还是返回到该Activity),软键盘总是隐藏的。
stateVisible:可见状态,软键盘是可见的,当用户导航(而不是返回)到该Activity时(不管有没有输入的必要)。
stateAlwaysVisible:总是可见状态,当该Activity获得焦点时(不管是导航到还是返回到该Activity),软键盘是可见的(不管有没有输入的必要)。
调节模式:
adjustUnspecified:未指定模式,
adjustResize:调整模式,该Activity主窗口调整屏幕大小,以便腾出空间弹出软键盘。
adjustPan:通过移动布局,保证用户输入的输入框在用户视野范围内。而不是调整屏幕大小。
注:adjustResize和adjustPan不能同时使用。常用:adjustPan以便用户始终能够看到自己的输入。
参考博客:http://blog.csdn.net/gaomatrix/article/details/7057032