1.手指触摸到屏幕首先触发Activity的Down事件。然后通过dispatchTouchEvent方法进行分发。
2、disPatchTouchEvent方法分发到Activity的mWindow的DecoView上DecoView是一个FramLayout
是一个ViewGroup。然后分发到ViewGroup的disPatchTouchEvent上。ViewGroup的disPatchTouchEvent
分发到ViewGroup的OnInterceptTouchEvent上。
3.如果ViewGroup的OnInterceptTouchEvent进行了拦截,那事件被传递到ViewGroup的OnTouchEvent上,
如果ViewGroup的OnTouchEvent进行处理返回true则该事件结束。否则,事件被传到Activity的OnTouchEvent
方法。至此Down事件结束。
4.如果ViewGroup的OninterceptTouchEvent不进行拦截。则事件传递到子View的dispatchTouchEvent上。
dispatchTouchEvent经过一系列的判断,如果条件满足的话会分发到View的OnTouchEvent上。 如果
View的OnTouchEvent返回true则事件被消费掉了。如果返回false。则事件会被传到,ViewGroup的OnTouchEvent
。如果ViewGroup的OnTouchEvent返回true,则事件被消费。返回false的话。事件会被传到Activity的OnTouchEvet。
至此整个Down事件结束。