ViewPager в ListView - как заблокировать ось прокрутки? - PullRequest
12 голосов
/ 26 октября 2011

У меня есть виджет ViewPager в каждой строке ListView. Это обеспечивает подобный полке пользовательский интерфейс, так что пользователь может прокручивать в поисках полки по вертикали, а затем прокручивать по горизонтали среди содержимого полки. Это работает.

Но процесс прокрутки ужасен: если я начну перетаскивать ViewPager на полке, прокручивать его горизонтально и случайно перетаскивать немного вверх / вниз, то ListView «захватывает» это действие перетаскивания и начинает прокручивать вертикально, заканчивая мой горизонтальное сопротивление В этом состоянии действие перетаскивания не «вернется» в ViewPager, оно есть у ListView, и все. Я должен начать другое действие перетаскивания, чтобы снова воздействовать на ViewPager. Поэтому я думаю, что ListView имеет приоритет в этих случаях.

Как это можно исправить? Я хотел бы добиться прямо противоположного: если ViewPager внутри строки списка начинает реагировать на горизонтальное перетаскивание, то оно должно перехватить это действие, и это перетаскивание должно перестать влиять на ListView, независимо от того, как пользователь перемещает свой палец вертикально. Можно ли это сделать?

1 Ответ

3 голосов
/ 13 сентября 2012

Я нашел решение в этой ветке. Там проблема заключается в том, чтобы правильно обрабатывать сенсорные события для HorizontalScrollView внутри обычного ScrollView, но решение этой проблемы, похоже, относится и к этому.

...