事件分发dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent三者关系

来源:互联网 发布:判断推理 知乎 编辑:程序博客网 时间:2024/04/30 05:05

摘自《Android开发艺术探索》

点击事件的传递规则(是有下面三个重要的方法共同完成):


//事件分发,返回值代表是否消耗当前事件
public boolean dispatchTouchEvent(MotionEvent ev)
//事件拦截,返回值代表是否拦截当前事件
public boolean onInterceptTouchEvent(MotionEvent ev)
//事件处理,返回值代表是否处理当前事件
public boolean onTouchEvent(MotionEvent ev)

三者的关系(通过伪代码展示三者的关系):


public boolean dispatchTouchEvent(MotionEvent ev){        boolean consume = false;            if(onInterceptTouchEvent(ev))                consume = onTouchEvent(ev);            else                consume  =  child.dispatchTouchEvent(ev);        return consume ;}
1 0
原创粉丝点击