每次遇到滑動衝突都頭大,帶你尋找事件衝突的根源

每次遇到滑動衝突都頭大,帶你尋找事件衝突的根源

分發的什麼事件?
事件分發的關鍵方法?
onTouch、onClick之間的關係?
瞭解衝突原因,如何解決衝突?

MotionEvent

事件 簡介
ACTION_DOWN 手指 初次接觸到屏幕 時觸發
ACTION_MOVE 手指 在屏幕上滑動時觸發,會多次觸發
ACTION_UP 手指 離開屏幕 時觸發
ACTION_CANCEL 事件 被上層攔截 時觸發

事件分發、攔截與消費

類型 相關方法 Activity ViewGroup View
事件分發 dispatchTouchEvent
事件攔截 onInterceptTouchEvent X X
事件消費 onTouchEvent X

總流程:

解決衝突:

  • 內部攔截法

  • 外部攔截法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章