interview

事件分发机制

事件的分发机制由三个重要方法来共同完成:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent

三者的关系可以总结为如下伪代码:

public boolean dispatchTouchEvent(MotionEvent ev) {
    boolean consume = false;
    if (onInterceptTouchEvent(ev)) {
        consume = onTouchEvent(ev);
    } else {
        consume = child.dispatchTouchEvent(ev);
    }

    return consume;
}