一、源码解析事件纷发流程:
步骤一、方法入口:Activity#dispatchTouchEvent()
Activity#dispatchTouchEvent
步骤二、接下来是调用到ViewGroup#dispatchTouchEvent():
ViewGroup#dispatchTouchEvent
步骤三、先判断是否是按下操作:
是否是按下操作
步骤三、判断是否被拦截(我们自己的代码可以通过requestDisallowInterceptTouchEvent来主动的拦截)
事件是否被拦截
步骤四、如果不拦截,执行图中代码:
如果不拦截,则执行
开始纷发事件
纷发的事件被子View消费了
image.png
二、事件分析的流程图
流程图.png