事件傳遞:由大到小,即父節(jié)點到子節(jié)點
dispatchTouchEvent作用是將touch事件向下傳遞直到遇到被觸發(fā)的目標(biāo)view,
如果返回true,表示當(dāng)前view就是目標(biāo)view,事件停止向下分發(fā)。
否則返回false,表示當(dāng)前view不是目標(biāo)view,需要繼續(xù)向下分發(fā)尋找目標(biāo)view.這個方法也可以被重載,手動分配事件。
onInterceptTouchEvent是ViewGroup提供的方法,默認(rèn)返回false,返回true表示攔截
onTouchEvent是View中提供的方法,ViewGroup也有這個方法,view中不提供onInterceptTouchEvent。view中默認(rèn)返回true,表示消費了這個事件
偽代碼:
dispatchTouchEvent(ev){
boolean consume = false;
if(onInterceptTouchEvent(){
consume = onTouchEvent(ev)
}
else{
consume = child.dispatchTouchEvent(ev);
}
return consume;
}