Android将触摸事件传递给WebView的内部内容

pat*_*pat 4 android webview ontouchlistener webviewclient

我有一个webview,我将onTouchListener设置为on以便捕获实际视图上的滑动事件。

我还在WebView上设置了WebViewClient,以便在单击Webview内的某些链接时覆盖“网址加载”。

问题是OnTouch处理程序总是始终首先接收操作,即使我返回false(如果不是轻扫),它也不会将touch事件传递给内部html内容,因此从不实际单击链接。如果我删除了onTouchListener,它可以正常工作。是否可以通过某种方式将触摸事件传递给内容?

rip*_*nid 6

您需要在主活动的OnCreate()中设置带有requestFocus()的OnTouchListener():

mWebView = (MyWebView) findViewById(R.id.webview);

mWebView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_UP:
                if (!v.hasFocus()) {
                    v.requestFocus();
                }
                break;
        }
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)