ViewGroup 和View。Activity 的Touch事件实际上是调用ViewGroup的Touch事件,可以直接当成ViewGroup处理。
我们先不修改任何返回值,只是点击一下View,然后看Log会怎样记录我们的操作和程序响应。点击View后log:
01-06 10:01:11.807 30119 30119 D TestEvent: ViewGroupA dispatchTouchEvent :ACTION_DOWN
01-06 10:01:11.807 30119 30119 D TestEvent: ViewGroupA onInterceptTouchEvent :ACTION_DOWN
01-06 10:01:11.807 30119 30119 D TestEvent: ViewGroupB dispatchTouchEvent :ACTION_DOWN
01-06 10:01:11.807 30119 30119 D TestEvent: ViewGroupB onInterceptTouchEvent :ACTION_DOWN
01-06 10:01:11.807 30119 30119 D TestEvent: View dispatchTouchEvent :ACTION_DOWN
01-06 10:01:11.808 30119 30119 D TestEvent: View onTouchEvent :ACTION_DOWN
01-06 10:01:11.808 30119 30119 D TestEvent: ViewGroupB onTouchEvent :ACTION_DOWN
01-06 10:01:11.809 30119 30119 D TestEvent: ViewGroupA onTouchEvent :ACTION_DOWN
返回值都为false
默认不处理:
ViewGroupA dispatchTouchEvent - >onInterceptTouchEvent ->ViewGroupB dispatchTouchEvent ->onInterceptTouchEvent ->View dispatchTouchEvent ->onTouchEvent (View dispatchTouchEvent向上)–>onTouchEvent (ViewGroupB dispatchTouchEvent向上)–>onTouchEvent (ViewGroupA)
01-06 10:18:29.824 31192 31192 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 10:18:29.824 31192 31192 D TestEvent: ViewGroupA onInterceptTouchEvent :true:ACTION_DOWN
01-06 10:18:29.824 31192 31192 D TestEvent: ViewGroupA onTouchEvent ::ACTION_DOWN
01-06 10:20:18.518 31338 31338 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 10:20:18.518 31338 31338 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 10:20:18.518 31338 31338 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_DOWN
01-06 10:20:18.518 31338 31338 D TestEvent: ViewGroupB onInterceptTouchEvent :true:ACTION_DOWN
01-06 10:20:18.518 31338 31338 D TestEvent: ViewGroupB onTouchEvent ::ACTION_DOWN
01-06 10:20:18.519 31338 31338 D TestEvent: ViewGroupA onTouchEvent ::ACTION_DOWN
01-06 10:26:01.576 31732 31732 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 10:26:01.576 31732 31732 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 10:26:01.576 31732 31732 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_DOWN
01-06 10:26:01.576 31732 31732 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_DOWN
01-06 10:26:01.577 31732 31732 D TestEvent: View dispatchTouchEvent ::ACTION_DOWN
01-06 10:26:01.577 31732 31732 D TestEvent: View onTouchEvent ::ACTION_DOWN
01-06 10:26:01.578 31732 31732 D TestEvent: ViewGroupB onTouchEvent ::ACTION_DOWN
01-06 10:26:01.578 31732 31732 D TestEvent: ViewGroupA onTouchEvent :true:ACTION_DOWN
01-06 10:26:01.660 31732 31732 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_UP
01-06 10:26:01.660 31732 31732 D TestEvent: ViewGroupA onTouchEvent :true:ACTION_UP
01-06 10:29:10.538 31931 31931 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 10:29:10.538 31931 31931 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 10:29:10.539 31931 31931 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_DOWN
01-06 10:29:10.539 31931 31931 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_DOWN
01-06 10:29:10.539 31931 31931 D TestEvent: View dispatchTouchEvent ::ACTION_DOWN
01-06 10:29:10.539 31931 31931 D TestEvent: View onTouchEvent ::ACTION_DOWN
01-06 10:29:10.540 31931 31931 D TestEvent: ViewGroupB onTouchEvent :true:ACTION_DOWN
01-06 10:29:10.632 31931 31931 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_UP
01-06 10:29:10.632 31931 31931 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_UP
01-06 10:29:10.632 31931 31931 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_UP
01-06 10:29:10.632 31931 31931 D TestEvent: ViewGroupB onTouchEvent :true:ACTION_UP
01-06 10:31:37.876 32111 32111 D TestEvent: ViewGroupA dispatchTouchEvent :true:ACTION_DOWN
01-06 10:31:38.063 32111 32111 D TestEvent: ViewGroupA dispatchTouchEvent :true:ACTION_UP
所有事件都被拦截
01-06 10:32:42.881 32226 32226 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 10:32:42.881 32226 32226 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 10:32:42.882 32226 32226 D TestEvent: ViewGroupB dispatchTouchEvent :true:ACTION_DOWN
01-06 10:32:42.956 32226 32226 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_UP
01-06 10:32:42.956 32226 32226 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_UP
01-06 10:32:42.956 32226 32226 D TestEvent: ViewGroupB dispatchTouchEvent :true:ACTION_UP
01-06 11:11:46.792 2387 2387 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 11:11:46.793 2387 2387 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 11:11:46.793 2387 2387 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_DOWN
01-06 11:11:46.793 2387 2387 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_DOWN
01-06 11:11:46.793 2387 2387 D TestEvent: View dispatchTouchEvent ::ACTION_DOWN
01-06 11:11:46.793 2387 2387 D TestEvent: View onTouchEvent :true:ACTION_DOWN
01-06 11:11:46.906 2387 2387 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_UP
01-06 11:11:46.906 2387 2387 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_UP
01-06 11:11:46.906 2387 2387 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_UP
01-06 11:11:46.906 2387 2387 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_UP
01-06 11:11:46.906 2387 2387 D TestEvent: View dispatchTouchEvent ::ACTION_UP
01-06 11:11:46.906 2387 2387 D TestEvent: View onTouchEvent :true:ACTION_UP
01-06 11:13:03.685 2649 2649 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_DOWN
01-06 11:13:03.685 2649 2649 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_DOWN
01-06 11:13:03.685 2649 2649 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_DOWN
01-06 11:13:03.685 2649 2649 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_DOWN
01-06 11:13:03.685 2649 2649 D TestEvent: View dispatchTouchEvent :true:ACTION_DOWN
01-06 11:13:03.726 2649 2649 D TestEvent: ViewGroupA dispatchTouchEvent ::ACTION_UP
01-06 11:13:03.727 2649 2649 D TestEvent: ViewGroupA onInterceptTouchEvent ::ACTION_UP
01-06 11:13:03.727 2649 2649 D TestEvent: ViewGroupB dispatchTouchEvent ::ACTION_UP
01-06 11:13:03.727 2649 2649 D TestEvent: ViewGroupB onInterceptTouchEvent ::ACTION_UP
01-06 11:13:03.727 2649 2649 D TestEvent: View dispatchTouchEvent :true:ACTION_UP