我目前在 webView 上有一个 GestureDetector,我想响应双击。然而,webView 然后会忽略所有单击 - 大概我也覆盖了这种行为。
我正在寻找:
- 双击将由我的代码检测并由我的 Activity 处理
- 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 来处理?
最佳答案
尝试在 onDown
方法中返回 false。返回 true“意味着”该事件已被消耗,因此不会被传递。
关于android - 仅拦截双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372789/