android 觸摸touch事件的派送和傳遞

來源:互聯網
上載者:User

標籤:android 觸摸 touch事件 派送 傳遞

  1、touch事件從Activity開始向下逐層派發

     一直派發到焦點控制項進行處理

  2、如果控制項的事件處理方法返回true

     則,該控制項消費且持續關注此事件

     否則,該事件向該控制項的上一層容器傳遞

  3、控制項的touch監聽器的onTouch方法 先於

     控制項本身的onTouchEvent執行


Touch事件派發和處理的方法

  dispatchTouchEvent

  onInterceptTouchEvent(只有ViewGroup有該攔截方法)

  onTouchListener.onTouch

  onTouchEvent


假設一個Activity只包含一個Linearlayout,這個LinearLayout又包含一個TextView。從Log中可以看出

當使用者按下這個TextView時,所執行的函數順序是:

Activity.dispatchTouchEvent

Linearlayout.dispatchTouchEvent

LinearLayout.onInterceptTouchEvent(LinearLayout是ViewGroup)

TextView.dispatchTouchEvent

TextView.onTouchListener.onTouch

TextView.onTouchEvent

LinearLayout.onTouchListener.onTouch

LinearLayout.onTouchEvent

最後是Activity.onTouchEvent

以上是每一層都不消費這個touch事件的情況,即所有方法都return false的情況。

如果任意一個方法消費了這個事件,即返回了true,這種情況下事件只到此方法為止,後面的方法都不執行。而後續事件將也只執行到此方法,即此方法消費並持續關注此事件,如:移動和抬起等後續事件。


 

android 觸摸touch事件的派送和傳遞

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.