經過圖片,咱們可以知道
全部disPatchTouchEvent()方法(除Activity)
return true 事件消費
retur false 事件回傳父類的onTouchEvent()
return super() 事件向下傳遞
全部的dispatchTouchEvent()和onTouchEvent()方法,一旦return true,則事件就被消費,沒有誰可以接收到這個事件了
spa
全部的dispatchTouchEvent()和onTouchEvent()方法return false的時候,都會回傳給父控件的onTouchEvent()方法處理
blog
若是事件不中斷,則整個事件爲U型傳遞,也就是一直return super()
事件
onInterceptTouchEvent()方法的做用,每一個ViewGroup都會有onInterceptTouchEvent()方法來判斷是否須要攔截事件,若是返回true,則會將事件傳遞到本身的onTouchEvent()方法中,若是返回false和super(),則表示不攔截,向下繼續傳遞事件
圖片
ViewGroup怎麼將事件傳遞到本身onTouchEvent()呢,ViewGroup的disPatchTouchEvent()方法
return true,則事件消費,再也不傳遞
return false,則事件傳遞到父控件的onTouchEvent()方法
return super() ,將事件傳遞到onInterceptTouchEvent()方法,而後return true以後,才能本身處理本身的onTouchEvent
View怎麼將事件傳遞到本身的onTouchEvent()呢?View 沒有onInterceptTouchEvent()方法,只有disPatchTouchEvent()方法
return true則事件消費
return false 則事件傳給ViewGroup的onTouchEvent()方法
return super()則事件傳遞給本身的onTouchEvent()it