事件的起源:android
咱們都知道觸摸事件是從Activity的dispatchTouchEvent方法開始的。再調用父類的super.dispatchTouchEvent(ev),事件向派發。函數
ViewGroup與View關係:View是android控件的最簡單的一個類,全部的控件都直接或間接繼承View,即ViewGroup繼承View。View有兩個回調函數dispatchTouchEvent和onTouchEvent;ViewGroup有三個回調函數dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。工具
dispatchTouchEvent事件說明:佈局
dispatchTouchEvent只負責處理觸摸事件的派發,事件由Activity的dispatchTouchEvent開始的。再執行父類的url
super.dispatchTouchEvent(ev)事件向下派發。spa
onInterceptTouchEvent事件說明:htm
onInterceptTouchEvent是ViewGroup提供的方法,它的默認返回false表示不攔截事件,當返回true時表示攔截了事件,即本身處理消費。blog
onTouchEvent事件說明:繼承
ViewGroup和View都有這個方法,onTouchEvent這個方法主要處理觸摸事件的按下移動和彈起的操做,當返回爲true時表示消費了這個事件,false則不消費,即返回上一層處理。
事件的傳遞過程:
Android中事件的傳遞過程都是從父佈局傳遞到子佈局,父佈局能夠有不少個,即ViewGroup-->ViewGroup-->View的過程,ViewGroup起到的是透傳做用。