View的事件分发机制

2017-02-26  本文已影响21人  往事一块六毛八

点击事件的传递规则

首先我们要明白这里要分析的对象就是MotionEvent,即点击事件。点击事件分发的过程由三个很重要的方法共同完成:dispatchTouchEvent,
onInterceptTouchEvent,和onTouchEvent三个方法组成。

在分析事件分发机制之前,这里先给出一些结论

事件分发机制的图解(在分析的都是ACTION_DOWN事件)

事件分发机制流程图.png

图解说明:

总结:

关于ACTION_MOVE、ACTION_UP总结

对于ACTION_MOVE、ACTION_UP总结:ACTION_DOWN事件在哪个控件消费了(return true), 那么ACTION_MOVE和ACTION_UP就会从上往下(通过dispatchTouchEvent)做事件分发往下传,就只会传到这个控件,不会继续往下传,如果ACTION_DOWN事件是在dispatchTouchEvent消费,那么事件到此为止停止传递,如果ACTION_DOWN事件是在onTouchEvent消费的,那么会把ACTION_MOVE或ACTION_UP事件传给该控件的onTouchEvent处理并结束传递。不会再往下传递!

http://www.jianshu.com/p/e99b5e8bd67b

上一篇下一篇

猜你喜欢

热点阅读