1. 程式人生 > >EditText彈出軟鍵盤把檢視上彈

EditText彈出軟鍵盤把檢視上彈

原文地址:https://blog.csdn.net/sky2016_w/article/details/78435730

前言:我們在開發中,經常會遇到Activity中的佈局的下方有EditText,獲取焦點彈出軟鍵盤的時候,軟鍵盤可能會遮擋輸入框,這樣使用者體驗非常不好,如何解決這一現象呢?

一、修改AndroidManifest.xml檔案,如下程式碼:

<activity
            android:name=".activity.DonateActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateVisible|adjustPan|stateHidden"
            >
        </activity>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

二、我們來了解這裡各個配置的含義:

stateUnspecified:介面沒有設定”android:windowSoftInputMode”時的狀態.這個狀態是彈出有EditText的介面時時不彈出軟鍵盤的,當EditText獲取焦點的時候彈出軟體盤

stateUnchanged:狀態不改變,意思就是和上一個介面相同,上一個介面彈出軟鍵盤,跳轉到這個介面時,軟鍵盤也是彈出狀態.

stateHidden:隱藏鍵盤,彈出這個介面的時候,不管上個介面是什麼狀態,這個介面的軟鍵盤都是隱藏的.

stateAlwaysHidden:一直隱藏(跟上面的區別未知,試不出來).

stateVisible:強制彈出軟鍵盤.跳轉到介面後,沒有EditText也彈出鍵盤.

stateAlwaysVisible:一直顯示鍵盤(同上).

adjustUnspecified:算是預設方式.如果介面沒有被ScrowView包裹,鍵盤會擋住一部分內容,如果介面被ScrowView包裹了,會讓ScrowView中的內容滾動,以放下軟鍵盤.

adjustPan:主介面不會縮放,會向上移來放置軟鍵盤