ViewPager внутри ListView

Есть ли способ добавить просмотр пейджера в качестве элемента списка?

Я хочу добавить его как «заголовок» поверх моего списка, прежде чем последуют все настоящие элементы списка. Я попытался использовать addHeaderView() или объявить несколько типов представлений в моем адаптере списка, однако viewpager никогда не отображается, как бы я ни пытался.

Кто-нибудь делал что-то подобное? Помощь!


person dnkoutso    schedule 29.12.2011    source источник
comment
Было бы неплохо включить исходный код макета.   -  person Dallas    schedule 01.05.2013


Ответы (2)


Цитируя Дианну Хэкборн, ViewPager "просто не предназначен для использования в качестве элемент в списке"

person CommonsWare    schedule 29.12.2011
comment
Я это читал, но обнаружил, что ViewPager не поддерживает wrap_content и поэтому не отображается. Если я явно устанавливаю ширину/высоту в параметрах макета, это работает. Я не хочу, чтобы каждый элемент в списке был просмотрщиком, только верхний заголовок, поскольку я использую его для просмотра типа галереи для продвигаемых элементов. - person dnkoutso; 30.12.2011
comment
@dnkoutso: г-жа Хакборн — один из основных инженеров Android. Она могла бы даже написать ViewPager. Я скромно предлагаю вам найти какое-то другое решение. Например, вы можете использовать Gallery для галереи. Или используйте HorizontalScrollView. Помещать прокручиваемые вещи в прокручиваемые вещи исторически было проблематично, но если гуглер уводит вас от решения, вам следует принять это предложение. - person CommonsWare; 30.12.2011
comment
Галерея — очень старый виджет, не подходящий для моих нужд. На данный момент я использую ViewFlipper, который хорошо справляется со своей задачей, но я бы предпочел гладкость и функциональность ViewPager. Я понимаю проблему смешивания двух, но я не вижу в этом проблемы, пока я указываю размеры, которые я хочу, чтобы пейджер был. p.s. я знаю, кто такая Диана :) - person dnkoutso; 30.12.2011
comment
привет, можно ли добавить представление пейджера в заголовок, есть ли какой-нибудь пример, я пытался ничего не отображать, никаких примеров. - person user606669; 29.06.2012
comment
Не уверен, почему это принятый ответ. Это комментарий и не отвечает на вопрос спрашивающего. - person Dallas; 30.04.2013
comment
dallasgutauckis.com/2013/04/30 / - person Randy Sugianto 'Yuku'; 07.05.2013
comment
@CommonsWare Я хочу сделать слайдер изображений (карусель) внутри recyclerview. Могу ли я использовать viewPager. Если нет, то как я могу сделать clid imageViews HorizontalScrollView совпадающим с родительским (только одно изображение на экране за раз). android:fillViewport=true работает только для одного дочернего представления. - person Farooq Khan; 02.07.2017
comment
@FarooqKhan: более типичным подходом здесь было бы вложение RecyclerViews. Если вам нужен ViewPager с представлениями для страниц, это может сработать. Я бы очень не решался использовать ViewPager с фрагментами для страниц. Я бы не стал использовать HorizontalScrollView для вашего варианта использования. - person CommonsWare; 02.07.2017
comment
@CommonsWare Спасибо за ваш ответ. Я также использую HorizontalScrollView, но как сделать так, чтобы ширина всех дочерних представлений соответствовала match_parent. Поскольку android:fillViewport=true работает только в том случае, если LinearLayout внутри HorizontalScrollView имеет только один дочерний элемент. - person Farooq Khan; 03.07.2017

Не используйте wrap_content, попробуйте вычислить и установить размер ViewPager программно, а затем добавить ViewPager в качестве заголовка ListView.

person Wayne    schedule 26.11.2012
comment
это тоже дает плохие результаты - person Rafael Sanches; 20.09.2013
comment
Да вот так работает. Я не знаю, почему это не сработало для @RafaelSanches. - person Sufian; 02.01.2015