事件分发机制

事件传递:由大到小,即父节点到子节点

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;

}

你可能感兴趣的:(事件分发机制)