Поделиться через


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, чтобы украсть события движения от детей и отправить их в эту ViewGroup через onTouchEvent(). Текущий целевой объект получит событие ACTION_CANCEL, и дальнейшие сообщения не будут доставлены здесь.

Атрибуты

Комментарии

Реализуйте этот метод для перехвата всех событий движения сенсорного экрана. Это позволяет наблюдать за событиями по мере их отправки детям и принимать на себя ответственность за текущий жест в любой момент.

Использование этой функции имеет некоторое внимание, так как оно имеет довольно сложное взаимодействие с View#onTouchEvent(MotionEvent) View.onTouchEvent(MotionEvent), и его использование требует реализации этого метода, а также этого в правильном способе. События будут получены в следующем порядке:

<ol><li> Вы получите вниз событие здесь. <li> Событие down будет обрабатываться дочерним элементом этой группы представлений или предоставлено вашему собственному методу onTouchEvent(). Это означает, что необходимо реализовать onTouchEvent() для возврата true, поэтому вы будете продолжать видеть остальную часть жеста (вместо того, чтобы искать родительское представление для его обработки). Кроме того, возвращая значение true из onTouchEvent(), вы не получите следующие события в onInterceptTouchEvent() и все сенсорные обработки должны выполняться в onTouchEvent(), как обычно. <li> До тех пор, пока вы возвращаете false из этой функции, каждое следующее событие (вплоть до и включая окончательное) будет доставлено сначала здесь, а затем в целевой объект onTouchEvent(). <li> , если вы возвращаете значение true, вы не получите никаких следующих событий: целевое представление получит то же событие, но с действием MotionEvent#ACTION_CANCEL, а все дальнейшие события будут доставлены в метод onTouchEvent() и больше не отображаются здесь. </Пр>

Документация по Java для android.view.ViewGroup.onInterceptTouchEvent(android.view.MotionEvent).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к