ViewPager в ListView - как заблокировать ось прокрутки?

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

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

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


person Zsombor Erdődy-Nagy    schedule 26.10.2011    source источник
comment
Нашел ответ здесь: stackoverflow.com/ вопросы/2646028/   -  person Zsombor Erdődy-Nagy    schedule 26.10.2011
comment
В этом случае лучше всего закрыть этот вопрос как дубликат (если вы считаете, что вопросы были достаточно похожи) или, если они достаточно различаются, отправьте ссылку как ответ и пометьте ее как выбранный ответ. Таким образом, он больше не будет отображаться как вопрос без ответа, за который проголосовали :)   -  person Alexander Lucas    schedule 13.09.2012
comment
Вы правы, этот вопрос, отображаемый как оставшийся без ответа, сбивает с толку, я добавил правильный ответ. Я думаю, что он достаточно отличается, я бы не стал отмечать его как точную копию.   -  person Zsombor Erdődy-Nagy    schedule 13.09.2012
comment
Привет @ZsomborErdődy-Nagy, не могли бы вы рассказать мне, как добавить просмотр пейджера в виде строки просмотра списка ??   -  person Gaurav Arora    schedule 13.11.2013


Ответы (1)


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

person Zsombor Erdődy-Nagy    schedule 13.09.2012