ScrollView con vista de niños, cómo interceptar scroll condicionalmente
Tengo un contenedorViewGroup
, llamémoslopantalla dentro de unaScrollView
. Esta vista de contenedor alberga una serie de otrosViews
llamémosloswidgets, y algunos de ellos están interesados en evitar que ScrollView se desplace y use ellos mismos los MotionEvent (por ejemplo, una imagen que se puede colocar en el panel)
No puedo averiguar la estrategia de intercepción de eventos adecuada para usar.ScrollView
siempre procesa el evento antes que los niños, o los niños procesan el evento peroscrollview
está desactivado.
Leí sobre la emisióngetParent().requestDisableInterceptTouchEvent()
en las vistas secundarias si esta vista desea capturar el evento, pero suonTouchEvent
No se llama, supongo que porqueScrollView
ha engullido el evento de antemano. Supongo que el hecho de tener 2 niveles de capas (contenedor + widgets) impide que esto funcione, supongo que el contenedorViewGroup
Tiene que desempeñar un papel importante aquí, pero no puedo averiguar cuál ...
¿Puedo saber, en elScrollView's
onInterceptTouchEvent
nivel, que widget en el contenedorviewGroup
¿Se ha tocado para decidir si debo interceptar o no?
o...
¿Cómo pueden las capas 'widget'en elViewGroup
obtener el evento antesScrollView
para que pueda llamargetParent().onRequestDisableInterceptTouch()
... O es esogetParent().getParent().onRequestDisableInterceptTouch()
?
Gracias por adelantado
He leído preguntas relacionadas pero no tengo suerte ...Manejar eventos táctiles en ScrollView Android