android:windowSoftInputMode属性
2016-10-02 本文已影响424人
Angelicas
android:windowSoftInputMode用于设置当前activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个"state…"值加一个"adjust…"值的组合。各个值之间用|分开,例如:
android:windowSoftInputMode="stateHidden|adjustResize"
一、各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
二、不知道你们之前有没有遇到和下面效果图一样的问题,我们先看看效果图:
也就是说当前界面中有editText并且获取焦点的时候,输入法会把当前界面整个给顶上去,这时候我的解决方案是:
(1)在配置文件AndroidManifest.xml中给当前的这个Activity添加
android:windowSoftInputMode="adjustResize"
(2)这里边我是想让状态栏固定住,下面的内容页是可以滚动的,因此在可以滚动的内容页外面加上一层ScrollView
这样这个问题就解决了