0

我正在尝试禁用 webview 上的触摸事件,这就是我所做的

webview.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Log.info("webview", "onTouch is called");
        return true;
    }
});

我看到有关触摸事件的日志消息,所以 onTouch() 肯定总是返回 true。然而,触摸事件仍会传播到 Web 视图(例如,我仍然可以滚动并与 Web 视图中的 html 页面上的按钮/链接进行交互)。我在这里想念什么吗?我该如何调试/修复这个?

谢谢!

4

1 回答 1

0

我不知道那里发生了什么,但以下必须工作

XML

<WebView
    android:id="@+id/web_view"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"/> 

JAVA

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final WebView webView = new WebView(this);
        setContentView(webView);

        webView.setWebViewClient(new HelloWebViewClient());

        webView.loadUrl("http://www.google.com");

        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });
    }

    public class HelloWebViewClient extends WebViewClient {
        // Catch additional url loading
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            return true;
        }
    }
}
于 2016-11-17T00:56:43.953 回答