step1. 父View收到ACTION_DOWN,如果没有拦截事件,则ACTION_DOWN前驱事件被子视图接收,父视图后续事件会发送到子View。
step2. 此时如果在父View中拦截ACTION_UP或ACTION_MOVE,在第一次父视图拦截消息的瞬间,父视图指定子视图不接受后续消息了,同时子视图会收到ACTION_CANCEL事件。
一般ACTION_CANCEL和ACTION_UP都作为View一段事件处理的结束。
只拦截ACTION_UP的日志情况:
onInterceptTouchEvent parent down false
onInterceptTouchEvent child down false
onTouchEvent child down false
onInterceptTouchEvent parent move false
onTouchEvent child move false
onInterceptTouchEvent parent up true
onTouchEvent child cancel false
拦截ACTION_MOVE同理,只不过子View第一个MOVE时就收到CANCEL,然后就没有然后了。