Android View事件分發流程
一、概述
view分發流程
1.dispatchTouchEvent();
2.onTouchListener();
3.onTouchEvent();
4.onClickListener();
二、源碼解析
1.來看看View的dispatchTouchEvent方法的源碼:
上圖中很明顯先判斷了mOnTouchListener.onTouch()方法的返回值,如果返回true,那麼dispatchTouchEvent不在向下分發事件onTouchEvent()。
2.接下來看看onClickListener()
onClickListener()在onTouchEvent()裏ACTION_UP中的performClick()方法中調用
每次觸屏點擊都會進行兩次動作ACTION_DOWN和ACTION_UP, 如果有滑動會多ACTION_MOVE動作
三、總結
總結流程圖: