事件机制分为传递和消费
传递 由: activity --> viewgroup --> view
消费由 : view -->viewgroup --> activity
优先级
setOnTouchListener > onTouchEvent > setOnLongClickListener > setOnClickListener
dispatchTouchEvent
返回true,说明事件消费了,到此为止了,不会往下传递,也不会往上回传
返回false, 说明事件没有消费,但是不往下传递,只会往上回传
只有返回默认super.dispatchTouchEvent 事件才会往下传递,是否往上回传得看 onTouchEvent
viewgroup 中 onInterceptTouchEvent
返回true ,表示自己处理事件,进入到自己的onTouchEvent ,事件不会继续传递到子view
返回 false 或者默认,事件往子VIEW传递
onTouchEvent
viewgroup 的 super.onTouchEvent(ev) 返回值为false
view 的super.onTouchEvent(ev) 返回值为ture
action_down 返回true,才会有后续的action_move,action_up, (可以这么理解,action_down为ture,说明这不是点击事件,是一 次滑动触摸事件,所以点击事件,长按事件就都不会执行了,可以在之前调用performClick()方法,clickListener才会被调用)
action_down 返回false,onTouchEvent 中action_move,up都不会执行了,事件会回传到上层