一、分發順序(從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。