터치가 발생하면 Android에서 터치를 처리해야 한다고 생각하는 적절한 보기로 전송합니다. 그런 다음 View 자체가 이 MotionEvent를 처리할지 아니면 다른 뷰로 전달할지 결정할 수 있습니다. 뷰는 이제 이러한 이벤트에 관심이 있음을 안드로이드에 알려야한다. onTouchEvent에서 true를 반환하고 싶지만 이는 이상적이지 않습니다. 터치 이벤트에서 true를 반환하면 이 뷰 위에 놓인 다른 모든 뷰가 모두 가로채기 때문에 터치 이벤트를 얻지 못할 수 있기 때문입니다. 그것은 버그가 발생하기 쉬운 매우 복잡합니다. 안드로이드는 우리에게 우리가 걱정하는 일반적인 제스처의 대부분을 처리 제스처 검출기를 주었다, 예를 들어, 탭 또는 두 번 탭 또는 스크롤. 레이아웃이 여전히 후속 MotionEvent를 방해할 수 있다는 점을 감안할 때 Android는 자녀에게 가로채기를 허용하지 않는 방법을 제공합니다. 이 작업은 아래보기 함수에서 parent.requestDisllowInterceptTouchEvent(true)를 호출하여 수행할 수 있습니다. 이것은 비디오를 시청해야합니다. Android 터치 시스템의 작동 방식에 익숙하지 않은 경우 이제 체크 아웃할 시간입니다. 다음은 이 비디오에 대해 만든 참고 사항입니다: 이러한 리소스의 대부분은 Android에서 터치 이벤트를 처리하는 데 사용하는 알고리즘의 흐름을 설명하는 데 중점을 둡니다. 그러나이 문서의 목적은 다른 관점에서 터치 시스템에 대한 통찰력을 제공하는 것입니다 : 우리는 알고리즘이 그렇게 행동하는 이유를 설명하려고합니다.

먼저 사용자 중심 의 접근 방식을 시작하여 알고리즘이 실제로 의미가 있음을 보여 준 다음 알고리즘이 개발자에게 제공하는 유연성을 보여 주는 세부 정보를 살펴보겠습니다. Periscope와 같은 다른 앱은 사용자 지정 터치를 활용하여 더 나은 사용자 환경을 만듭니다. Android에서 보기 및 사용자 지정 제스처를 처리하는 방법을 이해하면 이러한 기능을 구현하는 데 도움이 됩니다. Android의 이벤트 디스패치는 Activity->ViewGroup->보기에서 시작합니다. 왜냐하면 이것은 구글의 첫 번째 결과이기 때문입니다. 나는 유튜브에 데이브 스미스에 의해 좋은 이야기를 당신과 함께 공유하고 싶습니다 : 안드로이드 터치 시스템과 슬라이드를 마스터하는 것은 여기에서 사용할 수 있습니다. 그것은 나에게 안드로이드 터치 시스템에 대한 좋은 깊은 이해를 준 : 안드로이드에 그려진 보기는 기존의 X, Y 좌표 계를 따르지 않습니다. 뷰는 화면과 관련된 위치와 너비 및 높이와 함께 왼쪽 상단 모서리에 따라 터치를 전송해야 하는 위치를 알고 있습니다. 뷰에서 이벤트를 사용하지 않는 경우 Android는 뷰 계층 구조를 걷기 시작하고 모든 View의 상위 항목(바로 부모로부터 시작)에게 Activity.onTouchEvent에 도달할 때까지 이벤트를 처리할 수 있는 기회를 제공합니다. 상위 항목 중 하나가 이벤트를 사용하는 경우 트래버스는 중지됩니다.

Android 터치 흐름 제어를 관리하는 것은 필요할 때까지 필요하지 않을 수 있으며 코드를 참조하는 것만큼 간단하지 않다는 것을 깨닫게됩니다. 따라서 흐름이 어떻게 생겼는지에 대한 머리를 갖는 것은 필요한 시간에 편리 할 것입니다. 캐런 장은 setOnClickListener () 및 setOnLongClickListener () 메소드의 작동 방식을 설명하고, 보기 계층 구조가 안드로이드에 배치되는 방법을 검사합니다! 2. 벤자민 덤케 폰 데르 에헤에 의해이 문서는 안드로이드에 대한 팁의 번호를 제시하고 터치 시스템의 섹션으로 결론을 내린다. 작은 팁과 안드로이드, Kotlin 등 관련 주제에 대한 학습매체, 트위터 또는 페이스 북에 나를 따르라. ~ Elye ~ 안드로이드에 터치 제스처를 다루는 초보자에게 어려운 보일 수 있습니다. 디스패치TouchEvent, onInterceptTouchEvent, onTouchEvent, View.OnTouchListener : 처음에는 매우 명확하거나 서로 구별되지 않는 이름으로 많은 방법과 인터페이스가 있습니다. 물건을 사용자 지정하려는 경우 Android에서 사용하는 표준 상수가 많이 있는 뷰 구성 클래스가 있습니다.

프레임 레이아웃에서 재정의의 예 (내 예는 C # Xamarin 안 드 로이드와 프로그래밍, 하지만 논리는 자바에서 동일): 거기 밖으로 수많은 리소스 (기사 및 비디오) 꽤 철저 하 게 안 드 로이드의 터치 이벤트의 메커니즘을 설명 하는 시스템. 여기에 내가 더 도움이 발견 것들의 선택입니다.