Я использую Android ViewPager
. Я хочу показать предварительный просмотр страницы как слева, так и справа. Я видел, где можно использовать негатив, pageMargin
чтобы показать предварительный просмотр правой стороны.
setPageMargin(-100);
Можно ли как-нибудь показать предварительный просмотр левой стороны? По сути, это что-то похожее на виджет галереи, который я ищу.
android
android-viewpager
Брайан Бойл
источник
источник
setPageMargin(-100)
Правильно ли работает?Ответы:
Чтобы показать предварительный просмотр левой и правой страниц, установите следующие два значения
viewpager.setClipToPadding(false);
viewpager.setPadding(left,0,right,0);
Если вам нужно пространство между двумя страницами в окне просмотра, добавьте
источник
Ответ @JijuInduchoodan идеален и работает. Однако, поскольку я относительно новичок в Android, мне потребовалось время, чтобы понять и правильно его настроить. Итак, я отправляю этот ответ для использования в будущем и помогаю всем, кто находится на том же уровне, что и я.
Нет необходимости устанавливать ширину
ViewPager's
страницы в адаптере. Дополнительный код не требуется для просмотра предыдущей и следующей страницы вViewPager
. Однако, если вы хотите добавить пустое пространство вверху и внизу каждой страницы, вы можете установить следующий код дляViewPager's
родительского макета дочерней страницы.Это будет окончательный вид ViewPager.
источник
Решение с новым ViewPager2
В настоящее время вам следует подумать об использовании ViewPager2, который «заменяет ViewPager, устраняя большинство болевых точек своего предшественника» :
Результат
Код
В вашем Activity / Fragment настройте ViewPager2:
Добавьте
HorizontalMarginItemDecoration
, что тривиальноItemDecoration
:Добавьте размеры, которые контролируют, насколько предыдущий / следующий элемент виден, и горизонтальное поле текущего элемента:
Наконец, добавьте в
ViewPager2
свой макет:Одна важная вещь:
ViewPager2
элемент должен иметьlayout_height="match_parent"
(иначе возникает исключение IllegalStateException), поэтому вы должны сделать что-то вроде:Примеры PageTransformer
Google добавил руководство по ViewPager2, в котором есть 2
PageTransformer
реализации, которые вы можете использовать в качестве вдохновения: https://developer.android.com/training/animation/screen-slide-2О новом ViewPager2
источник
viewpager.setPageTransformer { page, position -> page.translationX = -1 * position }
setOffscreenPageLimit(1)
:)В 2017 году такого поведения дополнительно может быть легко достигнут путем использования
RecyclerView
с PagerSnapHelper (добавлено в версии 25.1.0 библиотеки поддержки v7): Некоторое время назад мне понадобилась такая функция, как вьюпейджер, и я подготовил крошечную библиотеку:
MetalRecyclerPagerView - там вы можете найти весь код вместе с примерами.
В основном он состоит из одного файла класса: MetalRecyclerViewPager.java (и двух xmls: attrs.xml и ids.xml ).
Надеюсь, это поможет кому-то и сэкономит несколько часов :)
источник
new PagerSnapHelper().attachToRecyclerView(recyclerView)
меня есть привязка к странице.если кто-то все еще ищет решение, я настроил ViewPage для его достижения без использования отрицательного поля, найдите здесь образец проекта https://github.com/44kksharma/Android-ViewPager-Carousel-UI, он должен работать в большинстве случаев, но вы все еще можно определить поле страницы с помощью
mPager.setPageMargin(margin in pixel);
источник
Вы можете сделать это в файле xml, просто используйте приведенный ниже код:
источник
Для тех, кто изо всех сил пытается отобразить это на разных экранах,
источник
Обратите внимание, что при установке нулевого заполнения для окна просмотра, размещение эффекта края окна просмотра искажается, это ошибка окна просмотра, см. Здесь: ошибка пограничного эффекта окна просмотра
Вы можете отключить краевой эффект, установив
android:overScrollMode="never"
окно просмотра, или исправить ошибку с помощью слегка измененной версии класса EdgeEffect : исправление ViewPagerEdgeEffectисточник
Используйте этот адаптер фрагмента и класс для просмотра окна просмотра в левой и правой прокрутке. Добавьте необходимые классы для прокрутки для просмотра следующих страниц.
источник