【问题标题】:How to disable the Android keyboard from taking the control over input fields in webview?如何禁用 Android 键盘控制 webview 中的输入字段?
【发布时间】:2020-02-12 19:15:43
【问题描述】:

我已经为这个特定的要求工作了两个多月了。但是当输入字段集中在 webview 中时,我还没有找到禁用本机键盘的解决方案。我正在构建一个具有内置键盘(本质上是一个视图)的应用程序,并且我希望显示它而不是本机键盘。

到目前为止我已经尝试过:

  1. 为单击事件添加 javascript eventListener 以显示我的键盘 使用 JavscriptInterface.(Works)
  2. 设置 webview 可聚焦:false 和 其父母的 descendantFocusabilityblocksDescendants (这有效 但不会在输入字段上显示光标)
  3. 隐藏本机 使用 loadUrl 方法调整 javascript 事件大小的键盘。(有效 但是在隐藏之前会暂时显示本机键盘 键盘)
  4. 侦听OnGlobalLayoutChange 事件以检查是否 键盘已添加。 (有效,但结果与 在上述情况下,性能略有提高)
  5. 强制停止 IME 服务。 (有效,但应用程序必须是系统 应用程序强制停止包和键盘服务必须启动 每当应用程序进入后台时。 有什么方法可以让我完成这项工作吗?

【问题讨论】:

标签: javascript android webview android-softkeyboard android-source


【解决方案1】:

对于包含 Web 视图的 Activity,您应该将 windowSoftInputMode 设置为 stateAlwaysHidden。这应该使屏幕键盘在整个 Activity 中保持隐藏。

【讨论】:

  • 但这不会显示光标吧?我需要显示光标。
  • 我不相信这会对光标产生任何影响,但我并不肯定。根据我对该标志的理解,它仅在窗口具有焦点时显示键盘时才会影响,而不是改变实际的焦点行为。
  • 实际上该标志的文档具有误导性。它仅在窗口具有焦点时隐藏键盘。就像避免在布局中有编辑文本时显示键盘一样。但是一旦edittext获得焦点,它就会显示键盘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
相关资源
最近更新 更多