我在webview中加载图片并希望通过fling手势在它们之间切换,但是在webview情况下实现手势检测器所有事件都是由detect = webview函数作为zoom并且mt不工作。有什么解决方案吗?过滤事件并将它们传递到ontouch?示例代码非常复杂。
感谢所有人。
答案 0 :(得分:4)
关键是检查gestureDetector.onTouchEvent的返回值,如果gestureDetector没有处理该事件,则将其传递给WebView超类。此外,确保从onDown方法返回“false”,即使您对它执行某些操作,因此超类可以初始化其内部状态。如果onFling方法处理事件,则返回“true”,否则返回“false”,以便可以应用默认方法。
public class FlingView extends WebView implements OnGestureListener {
private GestureDetector gestureDetector;
public FlingView(Context context) {
super(context);
init();
}
public void init() {
gestureDetector = new GestureDetector(this.getContext(), this);
}
@Override
public boolean onTouchEvent(MotionEvent e) {
return (
gestureDetector.onTouchEvent(e) || super.onTouchEvent(e));
}
/* OnGestureListener events */
public boolean onDown(MotionEvent e1) {
// Initialize event here
...
// give the superclass a chance at tap events
return false;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (test) {
// handle fling
...
return true;
} else {
// let superclass handle the event
return false;
}
}
}