Android 軟鍵盤彈出,界面總體上移

在作搜索功能的時候,點擊搜索框,搜索框獲取焦點,鍵盤彈出;如今問題出來了,android軟鍵盤彈出的時候,android整個界面上移,佈局被擠壓,很難看;要解決這個問題,咱們須要用到 windowSoftInputMode屬性;java

被壓縮的界面:
 
解決方案:
在AndroidManifest.xml文件中界面對應的<activity>裏設置windowSoftInputMode屬性
<activity android:name=".PhoneContactActivity" android:label="@string/title_activity_phone_contact" android:windowSoftInputMode="adjustPan|stateHidden" >  
     </activity>


android:windowSoftInputMode說明:android

 

activity主窗口與軟鍵盤的交互模式,能夠用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。佈局

這個屬性能影響兩件事情:性能

 1.當有焦點產生時,軟鍵盤是隱藏仍是顯示spa

 2.是否減小活動主窗口大小以便騰出空間放軟鍵盤code

 

windowSoftInputMode的設置必須是下面列表中的一個值,或一個」state…」值加一個」adjust…」值的組合。在任一組設置多個值——多個」state…」values,例如&mdash有未定義的結果。各個值之間用|分開。xml

例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >blog

在這設置的值(除"stateUnspecified"和"adjustUnspecified"之外)將覆蓋在主題中設置的值ci

各值的含義:string

stateUnspecified:軟鍵盤的狀態並無指定,系統將選擇一個合適的狀態或依賴於主題的設置

stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裏的狀態,不管是隱藏仍是顯示

stateHidden:用戶選擇activity時,軟鍵盤老是被隱藏

stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也老是被隱藏的

stateVisible:軟鍵盤一般是可見的

stateAlwaysVisible:用戶選擇activity時,軟鍵盤老是顯示的狀態

adjustUnspecified:默認設置,一般由系統自行決定是隱藏仍是顯示

adjustResize:該Activity老是調整屏幕的大小以便留出軟鍵盤的空間

adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能老是看到輸入內容的部分

例如:

AndroidManifest.xml文件中界面對應的<activity>里加入 android:windowSoftInputMode="adjustPan" 鍵盤就會覆蓋屏幕 android:windowSoftInputMode="stateVisible|adjustResize" 屏幕總體上移 android:windowSoftInputMode="adjustPan|stateHidden" 軟鍵盤彈出,界面佈局不變,這是解決彈出軟鍵盤,界面總體被壓縮的方式
相關文章
相關標籤/搜索