Android webView 触摸事件

Android webView touchEvents

我有一个网络应用程序,我正在尝试与 android 交互。很容易让 webview 显示页面,但是页面使用屏幕键盘。如果一个页面上只有一个输入,那么设置

就很容易了
android:focusableInTouchMode="false" 

在网络视图中,但是有几个地方存在多个输入,这会禁用 select 任何输入的能力(页面上的第一个自动 selected) .

扩展和覆盖 webView 以便能够 select 输入但不打开 softKeyboard 是否可行?

我也看过 this example,但我认为这不适用于网络视图。

编辑:

为了帮助澄清,我可以用 myWebView.setOnTouchListener(...) 覆盖,并在测试中这样做了,这很棒,因为它不允许显示软键盘,但它也不允许让其他事情发生,即。输入 selection。理想情况下,会有一个快乐的媒介,除了出现 softKeyboard 之外,一切都会发生。 (是的,我尝试过其他方法,例如

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

我觉得我的问题有点含糊,因为经过几个小时的研究后我束手无策。

我的最终目标是能够显示带有多个输入字段的屏幕键盘的网页。问题是只要焦点在输入字段上,就会显示 android 软键盘。

我尝试了多种变通方法,问题中列出的一种变通方法不起作用,因为我无法select任何输入,因为未注册触摸命令。

我尝试覆盖 onTouch,但是在 'up' 触摸后显示键盘,因此不可能有默认行为并仍然拦截和禁用键盘。

解决我的问题的解决方案是扩展 WebView class,然后覆盖 'onCreateInputConnection'。这是 android 解释 html 输入字段的 'type' 的地方。问题是 html 没有 'null' 类型,因此 android 将始终根据输入类型显示某种键盘。然而,Android 确实有一个空输入类型,它告诉键盘这里不需要输入。

 @Override
 public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    BaseInputConnection fic = new BaseInputConnection(this, true);
    outAttrs.actionLabel = null;
    outAttrs.inputType = InputType.TYPE_NULL;
    return fic;
}

我的 webview 完全禁用我所有文本字段上的输入所需的就是这个覆盖方法。

注意:这也会禁用附加的硬件键盘输入...对我来说不是问题,但是我有兴趣了解那里的工作。