1. 程式人生 > >android隱藏關閉軟鍵盤

android隱藏關閉軟鍵盤

現在有一個需求是說希望可以自動的隱藏和開啟軟鍵盤,場景是使用在alert dialog中有一個文字框,彈出dialog同時自動彈出鍵盤,編輯後點擊完成直接關閉。使用的方式是:

inputManager.showSoftInput(tvEditor,  InputMethodManager.SHOW_FORCED);

如果使用引數InputMethodManager.SHOW_IMPLICIT,就不會自動彈出鍵盤,但是使用SHOW_FORCED後使用各種方法都無法自動關閉鍵盤,必須按back鍵。

在vivo中很多自動隱藏鍵盤方法都ok,但是三星沒有一個方法可行,包含不僅限於如下方式:

(1)inputManager.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,InputMethodManager.HIDE_IMPLICIT_ONLY);

(2)dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

(3)dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

(4)inputManager.hideSoftInputFromInputMethod(tvEditor.getWindowToken(),0);

(5)inputManager.hideSoftInputFromInputMethod(dialog.getWindow().getDecorView().getWindowToken(),0);

最後無意中google到,只要toggle成對使用就ok,然後顯示使用

inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

隱藏也使用

inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

目前測試三星和vivo都ok。