Android中事件傳遞的方法有三種:
通過(guò)View的dispatchTouchEvent()方法進(jìn)行事件傳遞。在這種方式下,事件首先由Activity的dispatchTouchEvent()方法調(diào)用,然后傳遞給根布局的dispatchTouchEvent()方法,再逐級(jí)傳遞給子View的dispatchTouchEvent()方法,直到找到最終的事件接收者。
通過(guò)View的onTouchEvent()方法進(jìn)行事件傳遞。在這種方式下,事件從最終的接收者開(kāi)始傳遞,逐級(jí)向上傳遞到根布局,直到Activity的onTouchEvent()方法。
通過(guò)ViewGroup的onInterceptTouchEvent()方法進(jìn)行事件傳遞。在這種方式下,事件首先傳遞給根布局的onInterceptTouchEvent()方法,然后傳遞給子View的onInterceptTouchEvent()方法,如果某個(gè)子View的onInterceptTouchEvent()方法返回true,則該子View成為事件的接收者,否則繼續(xù)向下傳遞,直到找到最終的接收者。