原位址:http://blog.csdn.net/u011622479/article/details/51161717
在做搜尋功能的時候,點選搜尋框,搜尋框擷取焦點,鍵盤彈出;現在問題出來了,android軟鍵盤彈出的時候,android整個界面上移,布局被擠壓,很難看;要解決這個問題,我們需要用到 windowSoftInputMode屬性;
參考:http://blog.csdn.net/twoicewoo/article/details/7384398
被壓縮的界面:
解決方案:
在AndroidManifest.xml檔案中界面對應的<activity>裡設定windowSoftInputMode屬性
[java] view plain copy
- <activity
- android:name=".PhoneContactActivity"
- android:label="@string/title_activity_phone_contact"
- android:windowSoftInputMode="adjustPan|stateHidden" >
- </activity>
android:windowSoftInputMode說明:
activity主視窗與軟鍵盤的互動模式,可以用來避免輸入法面闆遮擋問題,Android1.5後的一個新特性。
這個屬性能影響兩件事情:
1.當有焦點産生時,軟鍵盤是隐藏還是顯示
2.是否減少活動主視窗大小以便騰出空間放軟鍵盤
windowSoftInputMode的設定必須是下面清單中的一個值,或一個”state…”值加一個”adjust…”值的組合。在任一組設定多個值——多個”state…”values,例如&mdash有未定義的結果。各個值之間用|分開。
例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >
在這設定的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆寫在主題中設定的值
各值的含義:
stateUnspecified:軟鍵盤的狀态并沒有指定,系統将選擇一個合适的狀态或依賴于主題的設定
stateUnchanged:當這個activity出現時,軟鍵盤将一直保持在上一個activity裡的狀态,無論是隐藏還是顯示
stateHidden:使用者選擇activity時,軟鍵盤總是被隐藏
stateAlwaysHidden:當該Activity主視窗擷取焦點時,軟鍵盤也總是被隐藏的
stateVisible:軟鍵盤通常是可見的
stateAlwaysVisible:使用者選擇activity時,軟鍵盤總是顯示的狀态
adjustUnspecified:預設設定,通常由系統自行決定是隐藏還是顯示
adjustResize:該Activity總是調整螢幕的大小以便留出軟鍵盤的空間
adjustPan:目前視窗的内容将自動移動以便目前焦點從不被鍵盤覆寫和使用者能總是看到輸入内容的部分
例如:
|