隧道式分发,冒泡式消费机制。
一个完整的事件包括:事件的分发dispatchTouchEvent,事件的拦截onInterceptTouchEvent以及事件的消费onTouchEvent。
Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象。其事件类型有:MotionEvent.ACTION_DOWN按下 MotionEvent.ACTION_UP抬起 MotionEvent.ACTION_MOVE移动 MotionEvent.ACTION_CANCEL结束
Android的UI界面由Activity、ViewGroup、View 及其派生类组成,事件传递的顺序:Activity -> ViewGroup -> View。
Activity 和View拥有dispatchTouchEvent和onTouchEvent两个方法。ViewGroup拥有dispatchTouchEvent,onInterceptTouchEvent以及onTouchEvent方法。
当一个点击事件发生时,事件最先传到`Activity`的`dispatchTouchEvent()`进行事件分发,如不进行干预,会一直向内层传递事件,最终由最内层的onTouchEvent处理,如果处理该事件则返回true,否则返回false,事件会向外传递由onTouchEvent处理以此类推。