只拦截双击

时间:2012-04-29 14:15:35

标签: android android-webview android-2.3-gingerbread gesturedetector

我目前在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进行处理?

1 个答案:

答案 0 :(得分:4)

尝试在onDown方法中返回false。返回true表示事件已被消耗,因此不会被传递。