Android?

Tags: 事件, 機制,

Android開發的朋友經常處理各種觸控事件,然而在觸控事件的傳遞過程中主要用到三個方法:dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()。相信這困擾了很多朋友,下面通過圖文給大家介紹一下它們之間的傳遞過程。

Android Touch事件傳遞機制詳解

工具/原料

android

android studio

方法/步驟

事件的起源:

我們都知道觸控事件是從Activity的dispatchTouchEvent方法開始的。再呼叫父類的super.dispatchTouchEvent(ev),事件向派發。

Android Touch事件傳遞機制詳解

ViewGroup與View關係:View是android控制元件的最簡單的一個類,所有的控制元件都直接或間接繼承View,即ViewGroup繼承View。View有兩個回撥函式dispatchTouchEvent和onTouchEvent;ViewGroup有三個回撥函式dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。

Android Touch事件傳遞機制詳解

dispatchTouchEvent事件說明:

dispatchTouchEvent只負責處理觸控事件的派發,事件由Activity的dispatchTouchEvent開始的。再執行父類的

super.dispatchTouchEvent(ev)事件向下派發。

Android Touch事件傳遞機制詳解

onInterceptTouchEvent事件說明:

onInterceptTouchEvent是ViewGroup提供的方法,它的預設返回false表示不攔截事件,當返回true時表示攔截了事件,即自己處理消費。

Android Touch事件傳遞機制詳解

onTouchEvent事件說明:

ViewGroup和View都有這個方法,onTouchEvent這個方法主要處理觸控事件的按下移動和彈起的操作,當返回為true時表示消費了這個事件,false則不消費,即返回上一層處理。

Android Touch事件傳遞機制詳解

事件的傳遞過程:

Android中事件的傳遞過程都是從父佈局傳遞到子佈局,父佈局可以有很多個,即ViewGroup-->ViewGroup-->View的過程,ViewGroup起到的是透傳作用。

Android Touch事件傳遞機制詳解

注意事項

如果幫到你了 請在下面投一票 感謝~

相關問題答案