从ViewGroup 的 onDispachTouchEvent 开始
viewgroup 收到父层调用过来的 touch event
在 onDispathTouchEvent 中做处理分发
1. 先使用 ev.getAction() 得到对应的动作 action ,然后根据actionMasked = action & MotionEvent.ACTION_MASK; 得到动作标志
当 actionMasked 为 ACTION_DOWN按下的时候 (或者会根据是否多点触屏,这次的事件为 多点触屏的其他事件 mFirstTouchTarget == null 来判断),会调用 onInterceptTouchEvent(ev)去算是否 当前这个viewgroup 拦截掉这个事件,把结果暂时用 intercepted 保存起来
然后检查当前 actionMasked 是否为结束取消事件 ACTION_CANCEL,并用 canceled 保存起来
然后 如果没有取消而且没有拦截的时候,回去遍历 当前viewGroup的childView。然后通过调用 isTransformedTouchPointInView 检查当前的这个触摸事件的event 坐标是否 落在这个childview上,
如果遍历到坐标落在childview 上时,会去调用 dispatchTransformedTouchEvent 来处理 这个触摸事件
在dispatchTransformedTouchEvent 中会检查childview是否存在dispatchTouchEvent来分发这个事件给childview
在 dispatchTouchEvent 中会 根据 当前的这个View(现在还是在 Viewgroup中)是否配置有 OnTouchlistenner ,如果没有就会调用 onTouchEvent 方法
让后再每一层每一层的把结果 返回给父view