前言:我們在開發中,經常會遇到Activity中的佈局的下方有EditText,獲取焦點彈出軟鍵盤的時候,軟鍵盤可能會遮擋輸入框,這樣用戶體驗非常不好,如何解決這一現象呢?
一、修改AndroidManifest.xml文件,如下代碼:
<activity
android:name=".activity.DonateActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible|adjustPan|stateHidden"
>
</activity>
二、我們來了解這裏各個配置的含義:
stateUnspecified:界面沒有設置”android:windowSoftInputMode”時的狀態.這個狀態是彈出有EditText的界面時時不彈出軟鍵盤的,當EditText獲取焦點的時候彈出軟件盤
stateUnchanged:狀態不改變,意思就是和上一個界面相同,上一個界面彈出軟鍵盤,跳轉到這個界面時,軟鍵盤也是彈出狀態.
stateHidden:隱藏鍵盤,彈出這個界面的時候,不管上個界面是什麼狀態,這個界面的軟鍵盤都是隱藏的.
stateAlwaysHidden:一直隱藏(跟上面的區別未知,試不出來).
stateVisible:強制彈出軟鍵盤.跳轉到界面後,沒有EditText也彈出鍵盤.
stateAlwaysVisible:一直顯示鍵盤(同上).
adjustUnspecified:算是默認方式.如果界面沒有被ScrowView包裹,鍵盤會擋住一部分內容,如果界面被ScrowView包裹了,會讓ScrowView中的內容滾動,以放下軟鍵盤.
adjustPan:主界面不會縮放,會向上移來放置軟鍵盤