語言

ViewGroup.OnInterceptTouchEvent(MotionEvent) 方法

定義

實施此方法攔截所有觸控螢幕動態事件。

[Android.Runtime.Register("onInterceptTouchEvent", "(Landroid/view/MotionEvent;)Z", "GetOnInterceptTouchEvent_Landroid_view_MotionEvent_Handler")]
public virtual bool OnInterceptTouchEvent(Android.Views.MotionEvent? ev);
[<Android.Runtime.Register("onInterceptTouchEvent", "(Landroid/view/MotionEvent;)Z", "GetOnInterceptTouchEvent_Landroid_view_MotionEvent_Handler")>]
abstract member OnInterceptTouchEvent : Android.Views.MotionEvent -> bool
override this.OnInterceptTouchEvent : Android.Views.MotionEvent -> bool

參數

ev
MotionEvent

動態事件正在層級中被發送。

傳回

返回 true 以竊取 Children 的動態事件,並透過 onTouchEvent() 將他們派送至 ViewGroup。 目前目標會收到ACTION_CANCEL事件,之後不會再傳送訊息。

屬性

備註

實施此方法攔截所有觸控螢幕動態事件。 這讓你能觀看事件如何傳送給你的孩子,並隨時掌握當前的手勢。

使用此函式需謹慎,因為它與 有相當複雜的互動 View#onTouchEvent(MotionEvent) View.onTouchEvent(MotionEvent),且使用時必須正確實作該方法與此方法。 活動將依下列順序接收:

<李奧爾><>,你會收到這裡的下去事件。 <li> 下墜事件會由此視圖群組的子節點處理,或交給你自己的 onTouchEvent() 方法來處理;這表示你應該實作 onTouchEvent() 來回傳 true,這樣你就能繼續看到手勢的其餘部分(而不是尋找父視圖來處理)。 此外,從 onTouchEvent( 返回 true)後,你不會在 onInterceptTouchEvent() 中接收後續事件,所有觸控處理都必須像平常一樣在 onTouchEvent() 進行。 <li> 只要你從這個函式回傳 false,之後每個事件(直到最後一個 up)都會先從這裡傳遞,然後再送到目標的 onTouchEvent()。 <li> 如果你從這裡返回 true,你將不會收到後續事件:目標視圖會收到相同的事件,但動作是 MotionEvent#ACTION_CANCEL,所有後續事件將傳送到你的 onTouchEvent() 方法,不再出現在這裡。 </ol>

Java 文件 android.view.ViewGroup.onInterceptTouchEvent(android.view.MotionEvent)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於