android - 暂停或停止 fragment 后未显示键盘

标签 android kotlin keyboard broadcastreceiver

即使在暂停或停止fragment之后单击,Android也不会在焦点编辑文本中显示键盘。例如,我专注于显示编辑文本键盘,一切正常,然后在恢复相同片段后单击主页按钮(或只留下片段),焦点仍在编辑文本中,但无法再次显示键盘。从日志:

W/InputMethodManager: The current service view is not the focus view



我只有一项 Activity , list 中有以下信息:

activity android:name=".presentation.main.MainActivity" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait">



在某些情况下,我们需要手动关闭键盘并使用以下广播:
  val view = this@MainActivity.currentFocus
            if (view != null) {
                val imm =
                    this@MainActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                imm.hideSoftInputFromWindow(view.windowToken, 0)
            }

最佳答案

要强制在EditText上打开键盘,请使用以下代码

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);

如果仍然不起作用,那么
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

关于android - 暂停或停止 fragment 后未显示键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755023/

相关文章:

kotlin - 如何在 kotlin 中为 `List<MyClass>::clas.java`

java - 在 Fragments Android 中使用 ConstraintLayout 时的空 UI

java - 导入android包无法解决

java - 我的应用程序无法自行运行 MainActivity

android - SVG 转换 - 存储 Path、Paint 和 Matrix 对象的有效方式?

gradle - 应用插件的不同方法? (Gradle Kotlin DSL)

ios - 适用于 iOS 的自定义键盘

ios - 如何使用导航 Controller 在模态视图中辞去第一响应者?

android - Soft KeyBoard 不会在 AlertDialog 的 EditText 中弹出

Android 模拟器未连接到互联网