一、Down事件 流程图
在ViewGroup 中 dispatchTouchEvent
第一步:获取到拦截信息 调用 onInterceptTouchEvent
如果intercepted = true 执行 dispatchTransformedTouchEvent(child = null)
- View.dispatchTouchEvent 有OnTouchListener 返回值为 true 表示 我自己处理
- 返回值为 false 执行View.onTouchEvent
- View.onTouchEvent 有OnClickListener 表示我处理
如果intercepted = false
- 事件为 DOWN 遍历child 从顶层View 开始 调用 dispatchTransformedTouchEvent (child)
- child.dispatchTouchEvent
- 并将child 添加到 TouchTarget的单向链表中
- 事件 不为DOWN 从单向链表中 取出TouchTarget 执行 child.dispatchTouchEvent