溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

onTouch與onTouchEvent的區(qū)別有哪些

發(fā)布時間:2020-12-01 16:49:34 來源:億速云 閱讀:1248 作者:Leah 欄目:移動開發(fā)

onTouch與onTouchEvent的區(qū)別有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1.onTouch和onTouchEvent,都是在dispatchTouchEvent()中調用,onTouch優(yōu)先于onTouchEvent執(zhí)行。如果在onTouch方法中通過返回true將事件消費掉,onTouchEvent將不會再執(zhí)行。另外需要注意的是,onTouch能夠得到執(zhí)行需要兩個前提條件,第一mOnTouchListener的值不能為空,第二當前點擊的控件必須是enable的。因此如果你有一個控件是非enable的,那么給它注冊onTouch事件將永遠得不到執(zhí)行。對于這一類控件,如果我們想要監(jiān)聽它的touch事件,就必須通過在該控件中重寫onTouchEvent方法來實現(xiàn)。

1、onTouch方法:

onTouch方法是View的 OnTouchListener借口中定義的方法。

當一個View綁定了OnTouchLister后,當有touch事件觸發(fā)時,就會調用onTouch方法。

(當把手放到View上后,onTouch方法被一遍一遍地被調用)

2、onTouchEvent方法:

onTouchEvent方法是override 的Activity的方法。

重新了Activity的onTouchEvent方法后,當屏幕有touch事件時,此方法就會別調用。

(當把手放到Activity上時,onTouchEvent方法就會一遍一遍地被調用)

3、touch事件的傳遞:

在一個Activity里面放一個TextView的實例tv,并且這個tv的屬性設定為 fill_parent

在這種情況下,當手放到屏幕上的時候,首先會是tv響應touch事件,執(zhí)行onTouch方法。

如果onTouch返回值為true,

表示這個touch事件被onTouch方法處理完畢,不會把touch事件再傳遞給Activity,

也就是說onTouchEvent方法不會被調用。

(當把手放到屏幕上后,onTouch方法被一遍一遍地被調用)

如果onTouch的返回值是false,

表示這個touch事件沒有被tv完全處理,onTouch返回以后,touch事件被傳遞給Activity,

onTouchEvent方法被調用。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI