Android事件传递机制

Activity、ViewGroup、View 三者的事件传递机制。
一次完成事件传递主要包含三个阶段,分发、传递、消费。
触摸事件包括三个类型
ACTION_DOWN
ACTION_MOVE
ACTION_UP
分别代表用户触摸屏幕时候的三个动作,由MotionEvent类负责管理。
第一阶段 分发
dispatchTouchEvent()该方法返回true 表示当前视图消费,不再进行分发,如果返回值为 super.dispatchTouchEvent() 则表示继续分发。
如果当前视图时ViewGroup 及其子类,则会调用 onInterceptTouchEvent()方法判断是否拦截次事件。
第二阶段 拦截
onInterceptTouchEvent() 该方法返回true 表示拦截该事件,不继续分发给子视图,同时交给自身的onTouchEvent()方法进行消费。
返回false或者super.onInterceptTouchEvent()则表示不拦截该事件,继续传给子视图
第三阶段 消费
onTouchEvent() 该方法返回true 表示该事件由当前视图处理,事件将不再交还给父视图的onTouchEvent方法处理。
Android 系统中有事件处理能力的有三个
Activity:拥有dispatchTouchEvent()和 onTouchEvent()
ViewGroup:拥有dispatchTouchEvent() 、onInterceptTouchEvent()、onTouchEvent()
【Android事件传递机制】View:拥有dispatchTouchEvent()、onTouchEvent()方法

    推荐阅读