如何以编程方式关闭/隐藏 Android 软键盘?
技术问答
309 人阅读
|
0 人回复
|
2023-09-11
|
我的布局之一EditText和一个Button。' ~! ~3 \5 i4 x6 E9 N6 k
在编辑字段中写入并单击 Button,我想在触摸键盘外部时隐藏虚拟键盘。我认为这是一个简单的代码,但我在哪里可以找到它的例子呢?
0 {& N- u% f! L/ D& z+ h( q+ p
3 h1 Y; j" d' A3 i) X 解决方案:
' A* v8 m! F2 } 您可以使用InputMethodManager强制 Android 隐藏虚拟键盘,调用hideSoftInputFromWindow,标记包含焦点视图的窗口。
0 v/ X- N$ [1 Q
: @3 G" Y( x1 [2 F- // 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);code]在所有情况下,这将被迫隐藏键盘。在某些情况下,你会希望的InputMethodManager.HIDE_IMPLICIT_ONLY输入作为第二个参数,以确保键盘只隐藏在用户没有明确强制显示键盘时(按菜单)。8 Y# E: b' V! i9 V* W4 y
- 注意:假如你想在 Kotlin 请使用此操作: context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
4 K# X% F/ d5 V' r3 x - Kotlin 语法[code]// Only runs if there is a view that is currently focusedthis.currentFocus?.let { view -> val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager imm?.hideSoftInputFromWindow(view.windowToken,0)}# R7 P/ Z- |& y' y& ]* m
|
|
|
|
|
|