Android View的事件分发流程(简单理解)

一.事件分发流程

事件分发从Activity到PhoneWindow在到DecorView

二.伪代码来表示其之间的关系

public boolean dispatchTouchEvent(MotionEvent ev) {
        boolean consume = false;//事件是否被消费
        if (onInterceptTouchEvent(ev)){//调用onInterceptTouchEvent判断是否拦截事件
            consume = onTouchEvent(ev);//如果拦截则调用自身的onTouchEvent方法
        }else{
            consume = child.dispatchTouchEvent(ev);//不拦截调用子View的dispatchTouchEvent方法
        }
        return consume;//返回值表示事件是否被消费,true事件终止,false调用父View的onTouchEvent方法
    }

三.理解入下图

图一

图二

你可能感兴趣的:(Android View的事件分发流程(简单理解))