Пример работы с ViewPager в Android | Prologistic.com.ua

Пример работы с ViewPager в Android

В этом уроке мы разберемся с виджетом ViewPager в ходе написания простого приложения. Мы рассмотрим основные настройки адаптера PagerAdapter (нужен для работы ViewPager) и реализуем 3 экрана виджета.

Краткий обзор ViewPager

Виджет ViewPager позволяет пользователю делать свайпы (проводить пальцем по экрану с одной стороны в другую) по страницам с какими-то данными. Сам ViewPager использует PagerAdapter, который создает компоненты View и заполняет их какими-то переданными данными. По механизму взаимодействия это сравнимо с адаптером ListAdapter и ListView.

Пример создания ViewPager в Android

Давайте перейдем к практике и установим в макете activity_main.xml компоновку виджета ViewPager из библиотеки поддержки:

Если у вас в RelativeLayout есть лишние отступы, которые были автоматически сгенерированы Android Studio, то просто удалите их.

А теперь создадим макеты для экранов виджета ViewPager. Вот первый макет view_screen_1.xml:

Остальные два view_screen_2.xml и view_screen_3.xml создайте по примеру первого с такими ресурсами:

Отлично, теперь можно приступать к созданию класса-модели, который будет хранить ссылки на ресурсы в удобно для нас виде:

Внимание! Если вы не знакомы с типом данных Enum, то обязательно почитайте о нем здесь.

Теперь переходим к самому интересному — адаптеру для нашего ViewPager:

Давайте вкратце рассмотрим основные методы, которые мы использовали при работе создании SimplePagerAdapter для лучшего понимания того, как он работает:

  • Конструктор SimplePagerAdapter(Context context) принимает в качестве параметра контекст для инициализации переменной класса, которая используется для доступа к данным и создании компонентов View по этим данным.
  • Метод instantiateItem(ViewGroup viewGroup, int position) использует перечисление, которое соответствует конкретной позиции. Получает с него данные и возвращает сформированный компонент View. В дальнейшем этот объект используется методом isViewFromObject.
  • Метод destroyItem() удаляет конкретный View из ViewGroup.
  • Метод getCount() просто возвращает количество View, которые использоваться в ViewPager.
  • Метод isViewFromObject() проверяет, соответствует ли конкретный объект данной позиции. Как описано чуть выше, второй параметр имеет тип Object и получается из метода instantiateItem().
  • Метод getPageTitle() возвращает текст для заголовка каждого экрана. В нашей реализации мы не передавали его ActionBar.

Мы создали все макеты и настроили правильное отображение в адаптере, теперь давайте инициализируем наш ViewPager готовым адаптером SimplePagerAdapter в методе onCreate() класса MainActivity:

Теперь осталось запустить наш простенький пример создания ViewPager в Android:

viewpager in android

Как видите, у нас 3 экрана, которые можно листать простым свайпом.

Скачать проект приложения ViewPager в Android можно здесь.

Подписывайтесь на новые статьи по Java и Android и следите за обновлениями!

2 Комментарии “Пример работы с ViewPager в Android

  1. Отличный урок! Большое спасибо. Уже неделю ищу нормальный урок на эту тему, наконец нашёл, где все работает.

    Пару вещей, которые я бы поправил:
    1. «Отлично, теперь можно приступать к созданию класса-модели, который будет хранить ссылки на ресурсы в удобно для нас виде:» -Тут в слове «удобном» не хватает буквы «М».

    2. «Остальные два view_screen_2.xml и view_screen_3.xml создайте по примеру первого с такими ресурсами:» -Не каждому начинающему понятно что такое ресурсы, стоило бы объяснить что это файл strings.xml и где он находится.

  2. А можно ли обращаться к добавленным таким способом элементам (например, изменить текст)? И, если можно, то как?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *