android View的事件分发调用顺序

来源:互联网 发布:华为云计算视频教程 编辑:程序博客网 时间:2024/05/16 15:36

今天回忆了一下基础,View的事件分发,主要是有三个重要的方法完成:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent,下面介绍一下这几个方法:
public boolean dispatchTouchEvent(MotionEvent event) :分发事件
public boolean onInterceptTouchEvent(MotionEvent ev):拦截事件
public boolean onTouchEvent(MotionEvent event):处理事件
他们关系可以用如下伪代码:

时间分发到当前view

public boolean dispatchTouchEvent(MotionEvent event) {    boolean consum = false;    //判断是否拦截    if(onInterceptTouchEvent(event)){            //处理            consum  = onTouchEvent(event)    }else{            //分发给子view            consum   = child.dispatchTouchEvent(event);    }}

当一个view需要处理的时候,如果你的view设置了onTouchListener,那么会回调onTouch方法,然后根据此方法的返回值,在决定当前view的onTouchEvent是否调用;
如果子view的onTouchEvent返回false,那么事件会逐级返回到上层,直到事件处理
简单介绍到这里!

0 0
原创粉丝点击