android事件传递机制

2016-05-27  本文已影响67人  andorid_xiao
Sample Flowchart Template.png
Touch事件相关方法 方法功能 所在对象
dispatchTouchEvent(MotionEvent ev) 事件分发 Activity、View、Viewgroup均有此方法
onInterceptTouchEvent(MotionEvent ev) 事件拦截 仅在Viewgroup中有此方法
onTouchEvent(MotionEvent ev) 事件消费 Activity、View、Viewgroup中均有此方法

注意:
事件消费的顺序:控件的onTouch()监听--->onTouchEvent()方法--->控件的onClick()监听
即,若控件设置了setOnTouchListener(),则事件最先派发到监听器的onTouch()方法。若onTouch()方法返回true,则事件被消费,停止传递,onToucnEvent()方法将不会收到事件;若onTouch()方法返回false,则事件可继续传递至onTouchEvent()方法。
onClick()方法响应的两个必要条件:1.ACTION_DOWNACTION_UP动作发生后;2.控件super.onTouchEvent()得到调用。

总结:

Touch事件传递.jpg

参考链接:
http://blog.csdn.net/yanzi1225627/article/details/22592831
http://blog.csdn.net/leewenjin/article/details/22928363

上一篇下一篇

猜你喜欢

热点阅读