2

我目前在要响应双击的 webView 上有一个 GestureDetector。但是,webView 然后忽略所有单击 - 大概我也覆盖了这种行为。

我在寻找:

  • 由我的代码检测并由我的活动处理的双击
  • WebView 正常处理的常规点击

这是我到目前为止所拥有的:

final WebView web = (WebView) findViewById(R.id.webView1);
WebViewClient webrules = new WebViewClient(){
        public boolean shouldOverrideUrlLoading(WebView web,String url){
            return false;
        }
    };
    web.setWebViewClient(webrules);
    WebSettings webSettings = web.getSettings();
    webSettings.setJavaScriptEnabled(true);

 

final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            Log.d("**APP**", "Double Tap event");
            return true;
        }

        @Override
        public boolean onDown(MotionEvent e) {
            return true;
        }
    });
    gestureDetector.setIsLongpressEnabled(true);

    web.setOnTouchListener(new OnTouchListener(){

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return gestureDetector.onTouchEvent(event);
        }

    });

如何将正常的单击留给 webView 处理?

4

1 回答 1

4

尝试在您的onDown方法中返回 false 。返回真正的“意味着”该事件已被消费,因此不会被传递。

于 2012-04-29T14:21:33.977 回答