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

メソッドで false を返してみてくださいonDown。true を返すことは、イベントが消費されたため、渡されないことを意味します。

于 2012-04-29T14:21:33.977 に答える