美文网首页
view的事件分发

view的事件分发

作者: 6a9ae66af426 | 来源:发表于2017-12-16 15:42 被阅读0次

view 的时间分发由3个重要的方法完成的  dispatchTouchEvent     onInterceptTouchEvent    onTouchEvent     之间的关系为:

置了 onTouchListener 那么他的onTouch方法会回调,如果返回的Boolean 值为false,则当前View 的onTouchEvent的方法会被调用 ,反之则不会被调用,setOnTouchListener方法的优先级大于 onTouchEvent ,View如果设置了OnClickListener,则在onTouchEvent中被调用

整体的优先级是    dispatchTouchEvent  > onInterceptTouchEvent  >  setOnTouchListener  >  onTouchEvent  >  OnClickListener

当一个时间产生后,传递的过程是   Activity  ->Window  ->顶级View

View 和ViewGroup 的区别:View没有onInterceptTouchEvent方法,一旦有时间传递给他那么直接onTouchEvent方法被调用,而ViewGroup默认不拦截任何事件,OnInterceptTouchEvent方法默认返回false。

子View通过调用requestDisallowInterceptTouchEvent(true)方法,可以干预父元素的事件分发, 调用该方法,一旦底层View收到touch的action后调用这个方法那么父层View就不会再调用onInterceptTouchEvent了,也无法截获以后的action。

相关文章

网友评论

      本文标题:view的事件分发

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