android 軟鍵盤彈出隱藏擠壓介面等問題
Android中軟鍵盤的使用是非常多的,下面為軟鍵盤常用的設定;
1、橫屏時,點擊輸入框出現全鍵盤解決方案: 在EditText、searchview等控制項中加
android:imeOptions="flagNoExtractUi"
2、豎屏時,安卓會出現半屏。
case1:你的輸入框處於中下的位置,這樣的話,鍵盤可能擋住輸入框。 解決方案:在manifest中對activity設定
android:windowSoftInputMode="adjustResize"
這樣activity的主視窗總會resize為鍵盤提供空間
case2:你的輸入框處於偏上面,一般情況下這樣就不會有什麼問題,但是如果你的介面縱向方面使用的是layout_weight即比重來分布頁面的話,
軟體盤會壓縮整個window,導致輸入框部分被壓縮。 解決方案:在manifest中對activity設定
android:windowSoftInputMode="adjustPan"
這樣鍵盤不會對壓縮原視窗,只會遮蓋下面一部分內容。這樣輸入框不會被壓縮了。
3、剛進入一個activity,會focus 輸入框,這時會主動彈出軟鍵盤,如果不希望自動彈出,那麼可先讓其他的不重要的控制項擷取焦點,然後一個定時器
再讓EditText擷取焦點即可!
4、判斷軟鍵盤當前是否處於彈出狀態
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
5、手動隱藏軟鍵盤
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
6、手動彈出軟鍵盤
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);