按下按钮时隐藏屏幕键盘

时间:2014-03-18 16:10:13

标签: android keyboard android-softkeyboard android-input-method

我想知道在用户按下按钮后如何最好地隐藏屏幕上的(软?)键盘。当用户在提交文本之前输入文本时,他们的键盘可能仍然可见,我想缩小他们提交的窗口。

我找到问题herehere的答案,但似乎都没有正常工作。它们的键盘仍然可见,但Toast通知显示在顶部。

我的代码,为清晰起见:

        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromInputMethod(getCurrentFocus().getWindowToken(), 0);

我也尝试过:

        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromInputMethod(((EditText)findViewById(R.id.txtToWrite)).getWindowToken(), InputMethodManager.0); 

1 个答案:

答案 0 :(得分:1)

您是否尝试过InputMethodManager.HIDE_NOT_ALWAYS?

InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

我认为您也可以尝试从EditText / SearchView清除焦点。例如:

searchBar = (SearchView) v.findViewById(R.id.ditto_search_bar);
searchBar.clearFocus();