一、分发顺序(从ViewGroup开始算)
1、dispatchTouchEvent( ) -> onInterceptTouchEvent( ) -> onTouchEvent( )
二、事件分发可能性
1、所有的viewgroup、view的onTouchEvent()方法都没有返回true,即当前事件没有被消费。在分发完 ACTION_DOWN 事件之后的事件不会再分发下来。应该是都没有处理这个事件,所以被顶层Activity(或Window?)处理了,之后的事件序列都被拦截),滑动一下下面的MyView,得出以下结果
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup_01 dispatchTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup_01 onInterceptTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup02 dispatchTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup02 onInterceptTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup03 dispatchTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup03 onInterceptTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: MyView dispatchTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: MyView onTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup03 onTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup02 onTouchEvent MotionEvent.ACTION_DOWN
08-12 07:26:27.895 6076-6076/com.dgz.kttest E/test2: ViewGroup_01 onTouchEvent MotionEvent.ACTION_DOWN
虽然有滑动的动作,但是除了Down事件,其他的完全没有分发到这几个View。