一、dispathTouchEvent/onTouchEvent/onInterceptTouchEvent三者关系
1、首先系统会调用dispathTouchEvent,判断事件是否能传递给当前View
2、onInterceptTouchEvent判断是否拦截事件,如果拦截会调用onTouchEvent
3、如果没有拦截,返回上一级
public boolean dispathTouchEvent(MotionEvent ev) {//事件能传递给当前View,就会调用,返回结果受如下代码影响
boolean consume = false;
if(onInterceptTouchEvent(ev)) {//是否拦截当前事件
consume = onTouchEvent(ev);//是否消耗当前事件、返回值受此影响
}else {
consume = chlid.dispathTouchEvent(ev);//返回值受此影响
}
return consume;
}
二、分发机制传递顺序
三、分发机制规则