从图中可以看出事件先是从Activity->ViewGroup->View这样传递下去,事件处理则是从View->ViewGroup->Activity。可以理解为有两个方向。
(1)touch事件事件传递形象的理解可以这么认为:比如我有一个苹果(touch),我可以自己吃也可以分发(dispatchTouchEventon)给孩子吃(TouchEvent)。如果我不吃那么我就返回给我的父亲处理,如果我分发给孩子那么孩子,那么这个苹果交给我的孩子他有自己独立的权利进行处理,他可以继续分给他的孩子就是我的孙子进行处理,也可以自己吃了吃掉,如果我的孙子不处理他也可以返回给他的父亲就是我的孩子处理,我的孩子也有相同的权利进行处理。
(2)接着上面其实这个事件(苹果)的传递是从上往下,然后再由下往上传递,中途如果有人消费这个事件(吃掉苹果),那么这个事件就结束(苹果没有了),就结束传递。
(3)事件(苹果)传递,不像我们人一样要害羞要矜持,推来推去,比如这个苹果孩子不分发给他的孩子但是他自己又不想消费(吃掉)而是返回给我,那么我就是只有两个选择要么消费(吃掉)要么返回给我的父类进行处理,不能推来推去,就是不能孩子给我了事件(苹果),我又来分发给孩子,这是不行的,这样就是个死循环。