Android Touch事件傳遞機制詳解

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

Android Touch事件傳遞機制詳解

工具/原料

  • android
  • android studio

方法/步驟

  1. 1

    事件的起源:android

    咱們都知道觸摸事件是從Activity的dispatchTouchEvent方法開始的。再調用父類的super.dispatchTouchEvent(ev),事件向派發。函數

    Android Touch事件傳遞機制詳解
  2. 2

    ViewGroup與View關係:View是android控件的最簡單的一個類,全部的控件都直接或間接繼承View,即ViewGroup繼承View。View有兩個回調函數dispatchTouchEvent和onTouchEvent;ViewGroup有三個回調函數dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。工具

    Android Touch事件傳遞機制詳解
  3. 3

    dispatchTouchEvent事件說明:佈局

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

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

    Android Touch事件傳遞機制詳解
  4. 4

    onInterceptTouchEvent事件說明:htm

    onInterceptTouchEvent是ViewGroup提供的方法,它的默認返回false表示不攔截事件,當返回true時表示攔截了事件,即本身處理消費。blog

    Android Touch事件傳遞機制詳解
  5. 5

    onTouchEvent事件說明:繼承

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

    Android Touch事件傳遞機制詳解
  6. 6

    事件的傳遞過程:

    Android中事件的傳遞過程都是從父佈局傳遞到子佈局,父佈局能夠有不少個,即ViewGroup-->ViewGroup-->View的過程,ViewGroup起到的是透傳做用。

    Android Touch事件傳遞機制詳解
相關文章
相關標籤/搜索