1. Понятие и назначение фрагментов
Фрагмент (класс Fragment) отвечает за внешний вид и поведение части пользовательского интерфейса в Activity (очень условно их можно сопоставить с фреймами в HTML). Фрагмент можно рассматривать как модульную часть Activity.
Разработчик может объединить несколько фрагментов в одно Activity для построения многопанельного UI и повторного использования фрагментов в нескольких Activity.
Кроме этого, фрагменты обладают динамическим поведением – их можно добавлять или удалять непосредственно во время выполнения операции.
Фрагмент всегда должен быть встроен в Activity, и на его жизненный цикл напрямую влияет жизненный цикл Activity. Например, когда Activity приостановлена, в том же состоянии находятся и все фрагменты внутри нее, а когда Activity уничтожается, уничтожаются и все фрагменты.
Фрагменты появились с версии Android 3.0 для обеспечения гибкости и динамичности UI на больших экранах (планшеты, Android TV). На большом экране существует гораздо больше возможностей для объединения и перестановки компонентов пользовательского интерфейса, что и позволяют делать фрагменты.
Существует много способов и случаев, в которых целесообразно использовать фрагменты. Опишем наиболее часто используемые.
1. Различная конфигурация фрагментов на разных устройствах и ориентациях.
Например, новостное приложение может использовать один фрагмент для показа списка статей, а другой – для отображения целой статьи. В зависимости от устройства и его ориентации, программа может вести себя по-разному:
- в портретной ориентации каждый фрагмент может находиться в своем отдельном Activity, и тогда, после нажатия на новость из списка, откроется отдельное окно со статьей;
- в ландшафтной ориентации оба фрагмента могут находиться в одном экране. Таким образом, фрагмент со списком статей может находиться в левой части экрана и при нажатии на статью, фрагмент в правой части экрана будет менять свое содержимое.
2. Создание динамического UI
Так как фрагменты являются легковесными элементами, их можно легко менять, показывать, скрывать и так далее, что позволяет нам создавать динамический пользовательский интерфейс, в котором содержимое окна может меняться по какому-то событию (нажатие на кнопку, swipe, различные жесты).
Android позволяет нам управлять несколькими фрагментами с помощью специального менеджера фрагментов, который есть в каждой Activity. С помощью этого менеджера, а также специального виджета ViewPager, можно создавать современные UI, в которых происходит динамическое переключение между фрагментами.
Использование viewPager
Last updated