当用户点击webview android中的文本框时,如何隐藏键盘

Sir*_*sha 5 android android-webview android-softkeyboard

当用户关注或点击webview中的html输入元素时,我们可以隐藏android系统键盘吗?

我试过在用户触摸webview上隐藏键盘:

webView.setOnTouchListener(new View.OnTouchListener()
{
    @Override
    public boolean onTouch (View v, MotionEvent event){
        Toast.makeText(cx,"Web View Touch",Toast.LENGTH_LONG).show();
        v.onTouchEvent(event);
        InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

        }
            return true;
    }
})
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

是否有完全隐藏键盘的选项?

小智 4

您可以使用清单控制软键盘 - 处理每个活动的输入法可见性,如下所示:

<activity
    android:name=".Main"
    android:windowSoftInputMode="stateAlwaysHidden" >

<activity
    android:name=".Main"
    android:windowSoftInputMode="stateHidden" >
Run Code Online (Sandbox Code Playgroud)

您还可以控制它,以便使用“下一个”从一个编辑文本流动到下一个编辑文本,然后使用IME 选项使用“完成”再次隐藏。

android:imeOptions="actionNext"
android:imeOptions="actionDone"
Run Code Online (Sandbox Code Playgroud)

我还意识到问题在于使用 webview 并且需要从父布局中禁用任何键盘,因为 webview 与清单中的活动是分开的,因此将其添加到任何父布局中:

android:descendantFocusability="blocksDescendants"
Run Code Online (Sandbox Code Playgroud)

并在网络视图中:

android:focusable="false" 
android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)