viewpager 부모에 터치 이벤트를 통과하는 사용자 정의보기를 방지하고 나는 viewpager's
ontouch
이벤트 내가 끌 수 없습니다가 발생합니다 사용자 정의보기의 ontouchevent
과 충돌한다 찾아 예상대로 주변에 사용자 정의보기. 이 문제를 해결하기 위해 사용자 정의보기의 ontouchevent
을 true로 설정하려고 시도하지만 의 touchevent
이 여전히 트리거됩니다. 어떻게 viewpager
이 처리되지 않도록 할 수 있습니까? ontouchevent
? 어떤 도움을 많이 주시면 감사하겠습니다!어떻게이 <code>viewpager</code>에서 사용자 정의보기 몇이
1
A
답변
1
ViewPager는 onInterceptTouchEvent()
을 사용하여 자녀보다 먼저 닿게합니다. docs을보고 호출기의 onInterceptTouchEvent()
을 원하는대로 덮어 씁니다.
onInterceptTouchEvent() 메서드는 ViewGroup의 표면에서 터치 이벤트가 감지 될 때마다 호출되며 그 자식의 표면을 포함하여 호출됩니다. onInterceptTouchEvent()가 true를 반환하면 MotionEvent가 가로 채어집니다. 즉, 자식에 전달되지 않고 부모의 onTouchEvent() 메서드에 전달됩니다.
onInterceptTouchEvent()가 true를 반환하면보기 호출기의 자식도 touch 이벤트에 응답하지 않고 onTouchEvent처럼 onInterceptTouchEvent에 재정의 할 수신기가없는 것처럼 보입니다. – jeep
Viewpager의 하위 클래스를 만들어야합니다. onTouch와 같은 Listener가 없기 때문에 호출기가 호출하는 것을 방지하는 것이 좋지 않습니다. 자세한 내용은 Viewpager의 [소스 코드] (https://android.googlesource.com/platform/frameworks/support/+/79398eaefea45e61d839cf4e0534f0eafee70a09/v4/java/android/support/v4/view/ViewPager.java)를 확인하십시오. onInterceptTouch에서 무슨 일이 일어나고 있는지. – FlanschiFox
그것은 작동합니다. 감사. – jeep