一、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; }
二、分发机制传递顺序
三、分发机制规则