1. 程式人生 > >android彈出和關閉軟鍵盤

android彈出和關閉軟鍵盤

之前的寫法有問題,這裡記下免得以後再用錯:

    /**
     * 顯示鍵盤
     *
     * @param et 輸入焦點
     */
    public void showInput(final EditText et) {
        et.requestFocus();
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
    }

    /**
     * 隱藏鍵盤
     */
    protected void hideInput() {
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        View v = getWindow().peekDecorView();
        if (null != v) {
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
        }
    }

另外,避免軟鍵盤彈出會覆蓋底部控制元件的方法是在佈局檔案根佈局加上一個屬性:

android:fitsSystemWindows="true"

設定預設不彈出鍵盤:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);// 設定預設鍵盤不彈出