Я хочу добавить 3 нижние точки в мой ViewPager, вот так.
Я использую FragmentActivity и поддерживаю библиотеку ViewPager.
Я хочу добавить 3 нижние точки в мой ViewPager, вот так.
Я использую FragmentActivity и поддерживаю библиотеку ViewPager.
Ответы:
Не нужно много кода.
Вы можете делать все это без особого кодирования, используя только
viewpager
сtablayout
.Ваш основной макет:
Подключите ваши неактивные элементы интерфейса или фрагмент следующим образом:
Java-код:
Вот и все, вы хорошо идти.
Вам нужно будет создать следующий файл ресурсов xml в папке drawable .
tab_indicator_selected.xml
tab_indicator_default.xml
tab_selector.xml
Чувствуешь себя таким же ленивым, как и я? Что ж, весь приведенный выше код преобразуется в библиотеку! Использование Добавьте следующее в ваш gradle:
implementation 'com.chabbal:slidingdotsplash:1.0.2'
Добавьте следующее в ваш макет Activity или Fragment.Создайте целочисленный массив,
strings.xml
например, вГотово! Дополнительно , чтобы прослушать изменения страницы, используйте ссылку
addOnPageChangeListener(listener);
Github .источник
com.google.android.material.tabs.TabLayout
в более новых версияхring
. Похоже, что кольцо также используется в библиотеке slidedotsplash вместо овального.Мое решение ручной работы:
В макете:
И в деятельности
источник
Layout
просто чтобы поставить точку? ИспользуйтеView
вместо этого.источник
setOnPageChangedListener()
осуждается !! ИспользуйтеaddOnPageChangedListener()
сейчас.Я создал библиотеку, чтобы удовлетворить потребность в индикаторе страницы в ViewPager. Моя библиотека содержит представление под названием DotIndicator. Чтобы использовать мою библиотеку, добавьте
compile 'com.matthew-tamlin:sliding-intro-screen:3.2.0'
в свой файл сборки Gradle.Вид можно добавить в макет, добавив следующее:
Приведенный выше код прекрасно повторяет функциональность точек на домашнем экране Google Launcher, однако, если вы хотите дополнительно настроить его, можно добавить следующие атрибуты:
app:unselectedDotDiameter
иapp:selectedDotDiameter
установить диаметры точекapp:unselectedDotColor
иapp:selectedDotColor
установить цвета точекapp:spacingBetweenDots
изменить расстояние между точкамиapp:dotTransitionDuration
установить время для анимации изменения с малого на большое (и обратно)Кроме того, представление может быть создано программно с помощью:
Существуют методы для изменения свойств, аналогичных атрибутам. Чтобы обновить индикатор для отображения другой выбранной страницы, просто вызовите метод
indicator.setSelectedItem(int, true)
изнутриViewPager.OnPageChangeListener.onPageSelected(int)
.Вот пример его использования:
Если вам интересно, библиотека на самом деле была спроектирована так, чтобы создавать заставки, подобные показанному на рисунке выше.
Источник Github доступен здесь: https://github.com/MatthewTamlin/SlidingIntroScreen
источник
int getNumberOfItems()
иvoid setNumberOfItems()
. Вместо того, чтобы поймать исключение, вы можете сделать что-то вроде этого gist.github.com/MatthewTamlin/761c7338d271af29526edc7859480aef .ViewPagerIndicator
не обновлялся с 2012 года и получил несколько ошибок, которые никогда не были исправлены.Я наконец нашел альтернативу с этой легкой библиотекой, которая отображает хорошие точки для
viewpager
, вот ссылка:https://github.com/ongakuer/CircleIndicator
Легко реализовать!
источник
Я подумал о том, чтобы опубликовать более простое решение для вышеупомянутой проблемы, и номера индикаторов можно динамически изменять, изменяя только одно значение переменной,
dotCounts=x
что я и сделал так.1) Создайте XML-файл в папке для рисования для выбранного индикатора страницы с именем «item_selected».
2) Создайте еще один XML-файл для невыбранного индикатора с именем "item_unselected"
3) Теперь добавьте эту часть кода в то место, где вы хотите отобразить индикаторы для ex ниже
viewPager
в вашем файле Layout XML.4) Добавьте эту функцию поверх файла вашего файла активности, где ваш макет завышен или вышеупомянутый файл XML связан с
5) Наконец, в вашем методе onCreate добавьте следующий код, чтобы ссылаться на ваш макет и обрабатывать выбранные позиции на странице.
источник
Вы можете попробовать библиотеку Джейка Уортона - https://github.com/JakeWharton/Android-ViewPagerIndicator
источник
Следующее - мое предлагаемое решение.
А) Следующее - это мой activity_main.xml
Б) pager_item.xml
C) MainActivity.java
D) CustomPagerAdapter.java
E) selecteditem_dot.xml
F) nonselecteditem_dot.xml
источник
Если кто-то хочет построить
viewPager
миниатюры в качестве индикаторов, можно использовать эту библиотеку: ThumbIndicator для viewPager, который также работает с ссылками на изображения в качестве ресурсов.источник
Вот как я это сделал, чем-то похожий на решения выше. Просто убедитесь , что вы называете () loadDots методом после того, как все изображения будут загружены .
источник