我的布局中有一个EditText和一个Button。
EditText
Button
在编辑字段中写入并单击 后Button,我想在触摸键盘外部时隐藏虚拟键盘。我认为这是一段简单的代码,但我在哪里可以找到它的示例?
您可以使用InputMethodManager强制 Android 隐藏虚拟键盘,调用hideSoftInputFromWindow,传入包含焦点视图的窗口的标记。
hideSoftInputFromWindow
// Check if no view has focus: View view = this.getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); }
这将强制在所有情况下隐藏键盘。在某些情况下,您将希望InputMethodManager.HIDE_IMPLICIT_ONLY作为第二个参数传入,以确保仅在用户没有明确强制显示键盘时才隐藏键盘(通过按住菜单)。
InputMethodManager.HIDE_IMPLICIT_ONLY
注意:如果您想在 Kotlin 中执行此操作,请使用: context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
Kotlin 语法
// Only runs if there is a view that is currently focused this.currentFocus?.let { view -> val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager imm?.hideSoftInputFromWindow(view.windowToken, 0) }