android应用activity中调出输入法后界面调整问题的解决
在自己写的一个小应用中发现一个问题,当调出输入法后界面最下方的一个按钮被挤到了输入法的上面,这样很不美观,所以找了一下解决办法记录如下:
在AndroidManifest.xml文件中找到对应的activity添加该属性:android:windowSoftInputMode。
该属性做两件事:
1:当用户使该activity获得焦点时决定软键盘是隐藏还是显示。
2:当软键盘出来时activity是否重新调整大小以适应软键盘和输入的内容。
添加方法:
android:windowSoftInputMode="adjustPan"
也可以同时设置两个值(需是一个state...值加一个adjust...值中间用|隔开),如下:
android:windowSoftInputMode="stateHidden|adjustPan"
=号后面的值有9个,解析如下:
1:"stateUnspecified
"
软键盘的显示或隐藏状态没有指定,系统将选择一个适合该主题的默认设置。
2:"stateUnchanged
"
当activity跳转后仍然保持上一次的状态不变。
3:"stateHidden
"
当用户转到一个activity时,软键盘被隐藏。
4:"stateAlwaysHidden
"
当一个activity中获得输入焦点时软键盘也被隐藏。
5:"stateVisible
"
当用户转到一个activity时软键盘通常可见。
6:"stateAlwaysVisible
"
当用户转到一个activity时,软键盘总是可见。
7:"adjustUnspecified
"
不指定界面是否调整大小以适应软键盘和输入内容显示在界面上的位置,由系统默认决定。
8:"adjustResize
"
activity总是自动调整空间大小以适应软键盘(留出空间)。
9:"adjustPan
"
当前activity界面自动移动使用户输入的内容不被覆盖。
参考文档:http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft