- java.lang.Object
-
- android.view.View
-
- android.widget.TextView
-
- android.widget.Button
相关文章:
面试:讲讲 Android 的事件分发机制 (更易懂)
Android View 事件分发机制 源码解析 (上) (鸿洋大神的,晦涩)
简述事件分发机制:
三个对象:Activity、ViewGroup、View。一个事件产生之后,都是先传给Activity,在传给ViewGroup,最后传给View。
三个方法:dispatchTouchEvent()、onInterceptTouchEvent()、onTouchEvent()
接下来进行流程分析,我们就以点击事件为例:
当用户点击了屏幕,首先Activity先监测到,事件先传递到Activity中,Activity通过它的dispatchTouchEvent将事件分发到ViewGroup,ViewGroup如果不拦截事件,那么就会继续下传到View,View是最底层控件,不会有onInterceptTouchEvent,它的选择就只有处理后不处理,处理就在onTouchEvent进行处理并返回true,不处理的话事件也不会被销毁,View这时会把事件回传,经过上述流程后回传给activity,如果Activity还不处理,那么这个事件才会被销毁;