我想知道在用户按下按钮后如何最好地隐藏屏幕上的(软?)键盘。当用户在提交文本之前输入文本时,他们的键盘可能仍然可见,我想缩小他们提交的窗口。
我找到问题here和here的答案,但似乎都没有正常工作。它们的键盘仍然可见,但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);
答案 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();