共用方式為


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,從子系竊取動作事件,並讓他們透過 onTouchEvent() 分派到此 ViewGroup。 目前的目標將會收到ACTION_CANCEL事件,而且這裡不會再傳遞任何訊息。

屬性

備註

實作此方法以攔截所有觸摸屏動作事件。 這可讓您在事件分派至您的子系時觀看事件,並在任何時間點取得目前手勢的擁有權。

使用此函式會小心謹慎,因為它與 View#onTouchEvent(MotionEvent) View.onTouchEvent(MotionEvent)有相當複雜的互動,而且使用它需要以正確的方式實作該方法和這個方法。 事件會依下列順序接收:

<ol><li> You will receive the down event here. <li> down 事件將由這個檢視群組的子系處理,或提供給您自己的 onTouchEvent() 方法來處理;這表示您應該實作 onTouchEvent() 以傳回 true,因此您將會繼續看到其餘手勢(而不是尋找父檢視來處理它)。 此外,藉由從 onTouchEvent(傳回 true),您將不會在 onInterceptTouchEvent() 中收到任何下列事件,而且所有觸控處理都必須在 onTouchEvent() 中發生,就像正常一樣。 <li> 只要您從此函式傳回 false,每個後續事件(最多和包括最終專案)都會先在這裡傳遞,然後傳遞至目標的 onTouchEvent()。 <li> 如果您從此處傳回 true,則不會收到任何下列事件:目標檢視將會收到相同的事件,但使用 動作 MotionEvent#ACTION_CANCEL,而且所有進一步的事件都會傳遞至 onTouchEvent() 方法,不再顯示在這裡。 </老>

android.view.ViewGroup.onInterceptTouchEvent(android.view.MotionEvent)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於