假设我有一个ViewGroup来处理垂直滚动事件。我已经在onInterceptTouchEvent
中实现了逻辑,当识别所需的手势时,它将返回true。
假设这个手势是"向下滚动"。当onInterceptTouchEvent
返回true(开始向下滚动)时,所有后续的触摸事件将被发送到我的ViewGroup(正确:))
问题是,一旦用户再次滚动向上(在同一手势内),我想取消自己作为触摸处理程序目标,并将事件传递给我的子视图。
我应该用什么?当我发现用户开始"向上移动"时,在myViewGroup.onTouch
中调用dispatchTouchEvent
?
停止处理先前通过onInterceptTouchEvent->true
"截获"的手势的一种方法是在onTouch
方法中调用dispatchTouchEvent
。
你需要伪造你自己的MotionEvent (ACTION_CANCEL)