다음을 통해 공유


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> 여기에서 다운 이벤트를 받게 됩니다. <li> down 이벤트는 이 뷰 그룹의 자식에 의해 처리되거나 처리할 고유한 onTouchEvent() 메서드에 제공됩니다. 즉, true를 반환하려면 onTouchEvent()를 구현해야 하므로 나머지 제스처를 계속 볼 수 있습니다(이를 처리할 부모 보기를 찾는 대신). 또한 onTouchEvent()에서 true를 반환하면 onInterceptTouchEvent()에서 다음 이벤트가 수신되지 않으며 모든 터치 처리는 정상처럼 onTouchEvent()에서 발생해야 합니다. <li> 이 함수에서 false를 반환하는 한 다음 각 이벤트(마지막까지 포함)가 먼저 여기에서 전달된 다음 대상의 onTouchEvent()에 전달됩니다. <li> 여기에서 true를 반환하면 다음 이벤트가 수신되지 않습니다. 대상 보기는 동일한 이벤트를 수신하지만 작업을 MotionEvent#ACTION_CANCEL통해 모든 추가 이벤트가 onTouchEvent() 메서드로 전달되고 더 이상 여기에 표시되지 않습니다. </ol>

에 대한 android.view.ViewGroup.onInterceptTouchEvent(android.view.MotionEvent)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상