Android 软键盘弹出,界面总体上移

在作搜索功能的时候,点击搜索框,搜索框获取焦点,键盘弹出;如今问题出来了,android软键盘弹出的时候,android整个界面上移,布局被挤压,很难看;要解决这个问题,咱们须要用到 windowSoftInputMode属性;java

被压缩的界面:
 
解决方案:
在AndroidManifest.xml文件中界面对应的<activity>里设置windowSoftInputMode属性
<activity android:name=".PhoneContactActivity" android:label="@string/title_activity_phone_contact" android:windowSoftInputMode="adjustPan|stateHidden" >  
     </activity>


android:windowSoftInputMode说明:android

 

activity主窗口与软键盘的交互模式,能够用来避免输入法面板遮挡问题,Android1.5后的一个新特性。布局

这个属性能影响两件事情:性能

 1.当有焦点产生时,软键盘是隐藏仍是显示spa

 2.是否减小活动主窗口大小以便腾出空间放软键盘code

 

windowSoftInputMode的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。xml

例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >blog

在这设置的值(除"stateUnspecified"和"adjustUnspecified"之外)将覆盖在主题中设置的值ci

各值的含义:string

stateUnspecified:软键盘的状态并无指定,系统将选择一个合适的状态或依赖于主题的设置

stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,不管是隐藏仍是显示

stateHidden:用户选择activity时,软键盘老是被隐藏

stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也老是被隐藏的

stateVisible:软键盘一般是可见的

stateAlwaysVisible:用户选择activity时,软键盘老是显示的状态

adjustUnspecified:默认设置,一般由系统自行决定是隐藏仍是显示

adjustResize:该Activity老是调整屏幕的大小以便留出软键盘的空间

adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能老是看到输入内容的部分

例如:

AndroidManifest.xml文件中界面对应的<activity>里加入 android:windowSoftInputMode="adjustPan" 键盘就会覆盖屏幕 android:windowSoftInputMode="stateVisible|adjustResize" 屏幕总体上移 android:windowSoftInputMode="adjustPan|stateHidden" 软键盘弹出,界面布局不变,这是解决弹出软键盘,界面总体被压缩的方式
相关文章
相关标签/搜索