如何在 SearchView 聚焦后隐藏软件键盘?
How to hide the software keyboard after a SearchView is focused?
我正在使用 SearchView 输入来自蓝牙条形码的数字 reader。
SearchView 的焦点如下:
svActListaPedidosFragmento.setFocusable(true);
svActListaPedidosFragmento.setIconified(false);
问题是SearchView聚焦时出现软键盘,想隐藏。
隐藏键盘的方法我很懂
问题是我找不到告诉我键盘出现的事件。
在之前的帖子中,有人告诉我可以使用 SearchView 的 OnClickListener 事件,但我发现此事件发生在键盘显示之前。
感谢任何意见或建议。
我目前正在创建一个应用程序,我有一个功能可以在键盘聚焦于 EditText
时隐藏键盘。
这是:
static void editTextHideKeyboard(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(LoginActivity.INPUT_METHOD_SERVICE);
if (imm!=null)imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
希望对您有所帮助!
编辑:我发现我 post 编辑的代码不是我的,我只是从另一个 Whosebug post 复制粘贴的!这是 the original post,所有功劳归于原作 poster!
只需使用它并将您的 editText 和布尔类型参数传递给显示或键盘
private void inputModeChange(final EditText editText, final boolean showKeyboard) {
editText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (showKeyboard) {
InputMethodManager keyboard = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(editText, 0);
} else if (showKeyboard == false) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
}
}, 50);
}
希望对您有所帮助。
我正在使用 SearchView 输入来自蓝牙条形码的数字 reader。
SearchView 的焦点如下:
svActListaPedidosFragmento.setFocusable(true);
svActListaPedidosFragmento.setIconified(false);
问题是SearchView聚焦时出现软键盘,想隐藏。
隐藏键盘的方法我很懂
问题是我找不到告诉我键盘出现的事件。
在之前的帖子中,有人告诉我可以使用 SearchView 的 OnClickListener 事件,但我发现此事件发生在键盘显示之前。
感谢任何意见或建议。
我目前正在创建一个应用程序,我有一个功能可以在键盘聚焦于 EditText
时隐藏键盘。
这是:
static void editTextHideKeyboard(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(LoginActivity.INPUT_METHOD_SERVICE);
if (imm!=null)imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
希望对您有所帮助!
编辑:我发现我 post 编辑的代码不是我的,我只是从另一个 Whosebug post 复制粘贴的!这是 the original post,所有功劳归于原作 poster!
只需使用它并将您的 editText 和布尔类型参数传递给显示或键盘
private void inputModeChange(final EditText editText, final boolean showKeyboard) {
editText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (showKeyboard) {
InputMethodManager keyboard = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(editText, 0);
} else if (showKeyboard == false) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
}
}, 50);
}
希望对您有所帮助。