分为 state
与adjust
两种参数,分别对应 软键盘的显示状态
与 当前Activity的调整模式
,所以一般配合使用:
android:windowSoftInputMode="stateHidden|adjustPan"
无论软键盘被赋予何种状态,首先我们确定的是:
- 点击EditText(主动获取焦点)会显示软键盘
- 点击软键盘上类似"完成"与"隐藏"的功能按钮会隐藏软键盘
接下来看一下这个基础之上的各参数差异:
- stateUnspecified
系统默认配置,自动选择以下state - stateUnchanged
软件盘状态与上一次设定保持一致 - stateHidden
无论是否有焦点,软键盘初始状态为隐藏,界面跳转不改变软键盘状态 - stateAlwaysHidden
无论有没有焦点,软键盘初始状态为隐藏,界面跳转改变软键盘状态为隐藏 - stateVisible
无论是否有焦点,软键盘初始状态为显示,界面跳转不改变软键盘状态 - stateAlwaysVisible
无论有没有焦点,软键盘初始状态为显示,界面跳转改变软键盘状态为显示 - adjustUnspecified
系统默认设置,自动选择以下adjust - adjustResize
当前Activity可调整的情况下才会生效,整个Activity会被整个压缩,直至压缩出软键盘所需的高度 - adjustPan
如果软键盘与当前焦点Editext底部尚有距离,则Activity不会变动;
如果软键盘挡住了当前焦点Editext,那么Activity将会整体上移,直至Editext在软键盘之上. - adjustNothing
Activity不做任何调整,任由软键盘覆盖内容