最佳的解决方案,刚刚从MyWebView
public class HelpWebView extends WebView {
private GestureDetector gestureDetector;
private AtomicBoolean mPreventAction = new AtomicBoolean(false);
private AtomicLong mPreventActionTime = new AtomicLong(0);
public HelpWebView(Context context) {
super(context);
gestureDetector = new GestureDetector(context, new GestureListener());
}
public HelpWebView(Context context, AttributeSet attrs) {
super(context, attrs);
gestureDetector = new GestureDetector(context, new GestureListener());
}
public HelpWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
gestureDetector = new GestureDetector(context, new GestureListener());
}
public HelpWebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
super(context, attrs, defStyle, privateBrowsing);
gestureDetector = new GestureDetector(context, new GestureListener());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int index = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
int pointId = event.getPointerId(index);
// just use one(first) finger, prevent double tap with two and more fingers
if (pointId == 0){
gestureDetector.onTouchEvent(event);
if (mPreventAction.get()){
if (System.currentTimeMillis() - mPreventActionTime.get() > ViewConfiguration.getDoubleTapTimeout()){
mPreventAction.set(false);
} else {
return true;
}
}
return super.onTouchEvent(event);
} else {
return true;
}
}
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
mPreventAction.set(true);
mPreventActionTime.set(System.currentTimeMillis());
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
mPreventAction.set(true);
mPreventActionTime.set(System.currentTimeMillis());
return true;
}
}
}
扩展您的WebView
您可以添加代码以覆盖doubletap事件吗? – Ferdau 2012-04-26 09:15:26
我正在用MyWebView扩展WebView。公共MyWebView(FriarBook上下文){超级上下文} {超级上下文} {超级上下文} \t gd = new GestureDetector(context,sogl); \t \t } GestureDetector.SimpleOnGestureListener sogl =新GestureDetector.SimpleOnGestureListener(){公共布尔onDoubleTap(MotionEvent E){ \t \t \t \t \t \t \t \t showToast( “双击”); \t \t \t \t \t \t \t \t \t \t \t \t \t \t返回FALSE; \t \t \t \t \t \t \t} ...那种我在的Android和Java ...的onDoubleTap火灾是一个新手,但不是首要双击缩放。 – jannej 2012-04-26 09:46:15
为何选择投票? – jannej 2012-10-05 09:36:21