ScrollView com vista de crianças, como interceptar rolagem condicionalmente

Eu tenho um containerViewGroupvamos chamá-lotela dentro de umScrollView. Esta exibição de contêiner hospeda vários outrosViews vamos chamá-loswidgets, e alguns deles estão interessados ​​em impedir que o ScrollView role e use o MotionEvent em si (por exemplo, uma imagem pannable)

Não consigo descobrir a estratégia correta de interceptação de eventos a ser usada.ScrollView sempre processa o evento antes dos filhos, ou os filhos processam o evento, masscrollview está desabilitado.

Eu li sobre a emissãogetParent().requestDisableInterceptTouchEvent() nas exibições filho, se essa exibição quiser capturar o evento, masonTouchEvent não é chamado, eu suponho porqueScrollView engoliu o evento de antemão. Eu acho que o fato de eu ter 2 níveis de camadas (container + widgets) impede que isso funcione, eu suponho que o containerViewGroup tem que desempenhar um papel importante aqui, mas não consigo descobrir qual ...

Eu posso saber, noScrollView's onInterceptTouchEvent nível, qual widget no contêinerviewGroup foi tocado para decidir se eu deveria interceptar ou não?

ou...

Como as camadas 'widget' podemnoViewGroup receba o evento antesScrollView para que eu possa ligargetParent().onRequestDisableInterceptTouch() ... ou égetParent().getParent().onRequestDisableInterceptTouch()?

desde já, obrigado

Eu li questões relacionadas, mas sem sorte ...Lidar com eventos de toque no ScrollView Android

questionAnswers(2)

yourAnswerToTheQuestion