美文网首页Android开发app开发
几分钟了解Android中View的事件分发机制

几分钟了解Android中View的事件分发机制

作者: cooperise | 来源:发表于2016-08-20 15:51 被阅读47次

点击事件的分发过程由3个很重要的方法来共同完成:

  • 用来进行事件的分发(由接受事件的父View进行分发)
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)){    //是否被父View拦截
          consume = onTouchEvent(ev);    //是否被父View消耗
   } else {
          consume = child.dispatchTouchEvent(ev);  //交给子View处理
   }
}

流程图如下:

View的事件分发

相关文章

网友评论

    本文标题:几分钟了解Android中View的事件分发机制

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