美文网首页
view事件分发机制

view事件分发机制

作者: 黑键手记 | 来源:发表于2019-02-15 21:03 被阅读16次

    事件分发机制

    dispatchTouchEvent

    处理事件的分发,如果事件能够传递给当前view那么这个方法一定被调用,返回结果受当前view和子view的dispatchTouchEvent方法的影响

    onIntercrptTouchEvent

    在diispatchTouchEvent方法中执行,用来判断是否拦截此事件,若拦截,则在同一个事件序列中,此方法不会再次被调用

    onTouchEvent

    还是在dispatchTouchEvent中调用,用来处理点击事件,返回结果表示是否消耗当前事件,若不消耗,则在同一个事件序列中,当前view无法再次接收到事件

    总而言之,onInterceptTouchEvent 和onTouchEvent均在dispatchTouchEvent中调用。

    下面伪代码可以很形象的表示三个方法的关系

    public boolean dispatchTouchEvent(MotionEvent ev){

    boolean consume=false;

    if(onInterceptTouchEvent(ev))(

    consume=onTouchEvent(ev);

    )else{

    consume=child.dispatchTouchEvent(ev);

    }

    return consume;

    }

    相关文章

      网友评论

          本文标题:view事件分发机制

          本文链接:https://www.haomeiwen.com/subject/rixveqtx.html