
MotionEvent.Action_Cancel什么时候发生?
子View在处理一个Touch事件中,父View的onInterceptTouchEvent返回true,此时子View会接收到MotionEvent.Action_Cancel。

- 只要Down事件能传递到Activity的onTouchEvent, Move和Up从activity:dispatchTouchEvent------->activity:onTouchEvent。其他中间过程无需传递。
- Down事件能传递到ViewGroup的onTouchEvent,Move和Up从activity:dispatchTouchEvent------->ViewGroup:dispatchTouchEvent------->ViewGroup:onTouchEvent。其他中间过程无需传递。
- Down事件无法传递到Activity的onTouchEvent和ViewGroup的onTouchEvent,也就是说:哪儿消费,Move和Up就传递到哪儿。

无任何消费,DOWN 、MOVE 、UP 的事件传递:
Activty dispatchTouchEvent = true,DOWN 、MOVE 、UP 的事件传递:

Activty dispatchTouchEvent = false,DOWN 、MOVE 、UP 的事件传递:

ViewGroup dispatchTouchEvent = true,DOWN 、MOVE 、UP 的事件传递:

ViewGroup dispatchTouchEvent = false,DOWN 、MOVE 、UP 的事件传递:

ViewGroup onInterceptTouchEvent = true,DOWN 、MOVE 、UP 的事件传递:

ViewGroup onInterceptTouchEvent= false,DOWN 、MOVE 、UP 的事件传递:(和无任何消费一样 false = super)

View dispatchTouchEvent = true,DOWN 、MOVE 、UP 的事件传递:

View dispatchTouchEvent = false,DOWN 、MOVE 、UP 的事件传递:

View onTouchEvent = true,DOWN 、MOVE 、UP 的事件传递

View onTouchEvent = false,DOWN 、MOVE 、UP 的事件传递

ViewGroup onTouchEvent = true,DOWN 、MOVE 、UP 的事件传递

ViewGroup onTouchEvent = false,DOWN 、MOVE 、UP 的事件传递

Activity onTouchEvent = true,DOWN 、MOVE 、UP 的事件传递

Activity onTouchEvent = false,DOWN 、MOVE 、UP 的事件传递

1472

被折叠的 条评论
为什么被折叠?



