分爲 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不做任何調整,任由軟鍵盤覆蓋內容