Reputation: 2516
I currently have a GestureDetector on a webView that I want to respond to double taps. However, the webView then ignores all single taps - presumably I have overridden this behaviour too.
I am looking for:
Here's what I have so far:
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);
}
});
How can I leave the normal single taps to the webView to deal with?
Upvotes: 2
Views: 2047
Reputation: 13331
Try returning false in your onDown
method. Returning true "means" that the event has been consumed, and is therefore not passed on.
Upvotes: 4