ScrollView z widokiem dzieci, jak warunkowo przechwycić przewijanie
Mam pojemnikViewGroup
, nazwijmy toekran wewnątrz aScrollView
. Ten widok kontenera zawiera wiele innychViews
nazwijmy jewidżety, a niektórzy z nich są zainteresowani uniemożliwieniem przewijania ScrollView i korzystania z MotionEvent (np. panoramiczny obraz)
Nie mogę znaleźć właściwej strategii przechwytywania zdarzeń.ScrollView
zawsze przetwarza zdarzenie przed dziećmi lub dzieci przetwarzają zdarzenie, alescrollview
jest niepełnosprawny.
Czytałem o wydawaniugetParent().requestDisableInterceptTouchEvent()
w widokach dziecka, jeśli ten widok chce uchwycić zdarzenie, ale ichonTouchEvent
nie nazywa się, jak przypuszczam, ponieważScrollView
wcześniej pochłonął wydarzenie. Przypuszczam, że fakt, że mam 2 poziomy warstw (widżety kontenera +) zapobiega temu, jak sądzę, kontenerowiViewGroup
musi tu odgrywać ważną rolę, ale nie wiem, który ...
Czy mogę wiedzieć, wScrollView's
onInterceptTouchEvent
poziom, który widget na kontenerzeviewGroup
został dotknięty, aby zdecydować, czy powinienem przechwycić, czy nie?
lub...
W jaki sposób warstwy „widżetu”wViewGroup
zdobądź wydarzenie wcześniejScrollView
więc mogę zadzwonićgetParent().onRequestDisableInterceptTouch()
... Albo to jestgetParent().getParent().onRequestDisableInterceptTouch()
?
Z góry dziękuję
Czytałem powiązane pytania, ale nie mam szczęścia ...Obsługa zdarzeń dotykowych w ScrollView Android