事件分发机制
Android事件分发机制是指将触摸屏的事件(MotionEvent)传递到某个具体的视图(View)并处理的整个过程。
事件分发的顺序是:Activity -> ViewGroup -> View,即事件先传到Activity,再传到ViewGroup,最终再传到View。
事件分发的过程由三个方法协作完成:dispatchTouchEvent(),onInterceptTouchEvent()和onTouchEvent()。
- dispatchTouchEvent():负责将事件分发给子视图或者自己处理。
- onInterceptTouchEvent():只有在ViewGroup中才有,用于拦截事件,决定是否传递给子视图。
- onTouchEvent():负责处理事件,返回true表示消费了事件,返回false表示不消费事件。
ViewGroup事件分发机制流程
View事件分发机制流程
Android事件分发流程
自定义ViewGroup事件分发
自定义ViewGroup的事件