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