基本会遵从 Activity => ViewGroup => View 的顺序进行事件分发,然后通过调用 onTouchEvent() 方法进行事件的处理。我们在项目中一般会对 MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,MotionEvent.ACTION_MOVE,MotionEvent.ACTION_CANCEL 分情况进行操作。
dispatchTouchEvent()
onTouchEvent()
onInterceptTouchEvent()
这与我之前修改phonewindowservice中的方法一致
dispatchTouchEvent() 是负责事件分发的。
onTouchEvent() 就会返回 true 消耗这个事件
return onTouchEvent(ev); //如果子View没有消费该事件,则调用自身的onTouchEvent尝试处理。
如果viewgroup拦截了这个事件那么之后直接认准他了