我在我的应用程序的屏幕一侧有一个 ViewFlipper,其中包含一堆不同的视图,我希望用户能够通过向左滑动来关闭它。于是我就照常做...
private class SwipeDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//Dismiss view
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
}
...然后将 ViewFlipper 的 onTouchListener 设置为在 SwipeDetector 中调用 onTouchEvent。这一切都很好,但是我注意到因为它正在消耗所有进入 ViewFlipper 的触摸事件,当 ViewFlipper 本身时我无法单击任何东西。如果我不覆盖 onDown 或让它返回 false,那么 TouchListener 将忽略事件的其余部分,我不会得到任何结果。如果我什至可以处理用户触摸 ViewFlipper 之后的所有 ACTION_MOVE 事件,但我什至无法做到这一点,我很乐意将某种自定义滑动检测组合在一起。有没有办法在不消耗 onDown 的情况下继续收听 MotionEvent?