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 属性许可证中所述的术语使用。

适用于