亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

最近學習android觸摸這一塊的邏輯,關于dispatchTouchEvent函數有些疑問?

最近學習android觸摸這一塊的邏輯,關于dispatchTouchEvent函數有些疑問?

阿晨1998 2022-10-09 14:10:06
觸摸時間發生時,dispatchTouchEvent是第一個被調用的方法。super.dispatchTouchEvent()方法代表什么,為什么在dispatchTouchEvent中調用它的時候會調用OnInterceptTouchEvent和onTouchEvent呢?在重寫ViewGroup的子類中的dispatchTouchEvent時,必須調用super.dispatchTouchEvent(),否則不論return的是true還是false,事件都不會往下一步傳遞。關于dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent這三個方法,很多點我明白,但串起來并不能完全了解,能說明白的大牛來回答下我。
查看完整描述

1 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

  1. dispatchTouchEvent的執行順序為:

            首先觸發ACTIVITY的dispatchTouchEvent

            然后觸發ACTIVITY的onUserInteraction

            然后觸發LAYOUT的dispatchTouchEvent

            然后觸發LAYOUT的onInterceptTouchEvent

這就解釋了重寫ViewGroup時必須調用super.dispatchTouchEvent();

2.

(1)dispatchTouchEvent:

            此方法一般用于初步處理事件,因為動作是由此分發,所以通常會調用      

           super.dispatchTouchEvent。這樣就會繼續調用onInterceptTouchEvent,再由onInterceptTouchEvent決定事件流向。

(2)onInterceptTouchEvent:


        若返回值為True事件會傳遞到自己的onTouchEvent();

        若返回值為False傳遞到下一個view的dispatchTouchEvent();

(3)onTouchEvent():

        若返回值為True,事件由自己處理消耗,后續動作序列讓其處理;

        若返回值為False,自己不消耗事件了,向上返回讓其他的父view的onTouchEvent接受處理;


查看完整回答
反對 回復 2022-10-12
  • 1 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號