Android事件分发机制

Android事件分发机制

  • ACTION_DOWN:

Activity 的dispatchTouchEvent ,只有return super.dispatchTouchEvent(ev) 才是往下走,返回true 或者 false 事件就被消费了(终止传递)。

Android事件分发机制_第1张图片
action_down.png

U型图


Android事件分发机制_第2张图片
action_down_U型图.png
  • ACTION_MOVE和ACTION_UP:
    下图中
    红色的箭头代表ACTION_DOWN 事件的流向
    蓝色的箭头代表ACTION_MOVE 和 ACTION_UP 事件的流向

1.在哪个View的onTouchEvent 返回true,那么ACTION_MOVE和ACTION_UP的事件从上往下传到这个View后就不再往下传递了,而直接传给自己的onTouchEvent 并结束本次事件传递过程。
2.ACTION_DOWN事件在哪个控件消费了(return true), 那么ACTION_MOVE和ACTION_UP就会从上往下(通过dispatchTouchEvent)做事件分发往下传,就只会传到这个控件,不会继续往下传,如果ACTION_DOWN事件是在dispatchTouchEvent消费,那么事件到此为止停止传递,如果ACTION_DOWN事件是在onTouchEvent消费的,那么会把ACTION_MOVE或ACTION_UP事件传给该控件的onTouchEvent处理并结束传递。

Android事件分发机制_第3张图片
move0.png
Android事件分发机制_第4张图片
action_move1.png
Android事件分发机制_第5张图片
action_move2.png
Android事件分发机制_第6张图片
action_move3.png
Android事件分发机制_第7张图片
action_move4.png
Android事件分发机制_第8张图片
action_move5.png
Android事件分发机制_第9张图片
action_move6.png

你可能感兴趣的:(Android事件分发机制)