windowSoftInputMode是Activity的属性来着,专治输入法对布局造成一系列的影响,在AndroidManifest.xml文件中的activity中设置android:windowSoftInputMode属性可以很好解决以上“杂症”。
这个属性将会对Activity造成两个影响:
- **当有焦点产生时,软键盘是隐藏还是显示 **
- 是否减少活动主窗口大小以便腾出空间放软键盘
所以我们要了解windowSoftInputMode属性值:
【A】
- stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
- stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
- stateHidden:用户选择activity时,软键盘总是被隐藏
- stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
- stateVisible:软键盘通常是可见的
- stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【B】
- adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
- adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
- adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
使用方式:我们一般会将A属性和B属性联用:android:windowSoftInputMode="【A】|【B】"