Android鍵盤使用問題匯總
1、android:windowSoftInputMode1、當有焦點產生時,軟鍵盤是隱藏還是顯示
2、是否減少活動主視窗大小以便騰出空間放軟鍵盤
2、android:imeOptions="actionSearch|flagNoFullscreen"的用法在做一個把EditText放到到ActionBar中作為搜尋方塊的功能時,設定EditText的屬性為android:imeOptions="actionSearch",會遇到一個問題,當在橫屏時,EditText的寬度會填充掉螢幕上除了軟鍵盤之外的地方,與需求不符,改為android:imeOptions="actionSearch|flagNoFullscreen"後就OK了。
3、代碼設定彈出鍵盤是否擠壓視窗
不擠壓視窗:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
擠壓視窗:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
一共四種模式:
SOFT_INPUT_ADJUST_NOTHING
SOFT_INPUT_ADJUST_PAN
SOFT_INPUT_ADJUST_RESIZE
SOFT_INPUT_ADJUST_UNSPECIFIED
4、有時候無法調起鍵盤
有時候發現用下面代碼無法調起鍵盤:
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);imm.showSoftInput(mView, 0);
有可能焦點已經落在其他非編輯框View上了,延遲一下可能就好了。IME彈出時,會檢測當前的焦點View是否有效,如果非有效焦點View,IME是彈不出來的。
mView.postDelayed(new Runnable() {@Overridepublic void run() {InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);imm.showSoftInput(mView, 0);}}, 100);