Le meilleur endroit pour démystifier c'est le code source. Les docs sont malheureusement insuffisantes à expliquer cela.
dispatchTouchEvent est réellement définie sur l'Activité, la Vue et ViewGroup. Pensez-y comme un contrôleur qui décide de la façon de route les événements tactiles.
Par exemple, le cas le plus simple est celui de la Vue.dispatchTouchEvent qui permettra d'acheminer l'événement tactile soit OnTouchListener.onTouch si elle est définie ou à l'extension de la méthode onTouchEvent.
Pour ViewGroup.dispatchTouchEvent les choses sont plus compliquées. Il doit comprendre que l'un de ses vues enfant doit obtenir de l'événement (par l'appel de l'enfant.dispatchTouchEvent). C'est fondamentalement un coup algorithme de dépistage où vous comprendre quel enfant de voir du rectangle de délimitation contient les coordonnées du point de contact.
Mais avant de pouvoir l'envoi de l'événement appropriée en vue d'enfant, le parent peut espionner et/ou d'intercepter l'événement tous ensemble. C'est ce que onInterceptTouchEvent est là pour. Donc il appelle cette méthode avant de faire le coup d'essai et si l'événement a été détourné (en retournant vrai onInterceptTouchEvent) il envoie un ACTION_CANCEL à l'enfant vues, de sorte qu'ils peuvent abandonner leur touche de traitement des événements (par rapport à des événements tactiles) et à partir de là, tous les événements tactiles au niveau du parent sont expédiés à onTouchListener.onTouch (si défini) ou onTouchEvent(). Aussi, dans ce cas, onInterceptTouchEvent n'est jamais appelé de nouveau.
Voulez-vous même de vouloir remplacer [Activité|ViewGroup|View].dispatchTouchEvent? Sauf si vous faites partie de routage personnalisé, vous ne devriez probablement pas.
Les principales méthodes d'extension sont ViewGroup.onInterceptTouchEvent si vous voulez espionner et/ou d'interception d'événement tactile au niveau du parent et de la Vue.onTouchListener/Vue.onTouchEvent pour l'événement principal de la manipulation.
Dans l'ensemble de ses trop compliqué conception de l'omi mais android api pencher davantage vers de la flexibilité de la simplicité.