view的分发事件是有上而下的,其中有三个重要的方法。
1. dispatchTouchEvent——用来进行事件的分发,每次父view传递给子view时,首先执行此方法。
2.onInterceptTouchEvent——用来进行事件的拦截,返回true,表示拦截,则不会传递给子view,返回false,表示不拦截,传递给子view
3.o nTouchEvent—— 处理点击事件,view的最终的执行方法。
当我们做点击事件的时候,首先是传给Activity,Activity分发事件到view group,view group会执行dispatchTouchEvent方法,然后判断onInterceptTouchEvent是否拦截,如果拦截true,则事件分发到本身view group,它继续执行o nTouchEvent来处理点击事件;如果不拦截false,事件继续向下分发到子view,view会执行dispatchTouchEvent,接着会执行ontouchEvent方法来处理点击事件。