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

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

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

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

12
задан Zsombor Erdődy-Nagy 26 October 2011 в 09:27
поделиться