事件传递:由大到小,即父节点到子节点
dispatchTouchEvent作用是将touch事件向下传递直到遇到被触发的目标view,
如果返回true,表示当前view就是目标view,事件停止向下分发。
否则返回false,表示当前view不是目标view,需要继续向下分发寻找目标view.这个方法也可以被重载,手动分配事件。
onInterceptTouchEvent是ViewGroup提供的方法,默认返回false,返回true表示拦截
onTouchEvent是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件
伪代码:
dispatchTouchEvent(ev){
boolean consume = false;
if(onInterceptTouchEvent(){
consume = onTouchEvent(ev)
}
else{
consume = child.dispatchTouchEvent(ev);
}
return consume;
}