Учебники

Android — Фрагменты

Ниже приведены важные моменты о фрагменте —

  • Фрагмент имеет свой собственный макет и свое собственное поведение со своими собственными обратными вызовами жизненного цикла.

  • Вы можете добавлять или удалять фрагменты в действии во время его выполнения.

  • Вы можете объединить несколько фрагментов в одном действии для создания многопанельного пользовательского интерфейса.

  • Фрагмент может быть использован в нескольких видах деятельности.

  • Жизненный цикл фрагмента тесно связан с жизненным циклом активности хоста, что означает, что при приостановке действия все фрагменты, доступные в действии, также будут остановлены.

  • Фрагмент может реализовать поведение, которое не имеет компонента пользовательского интерфейса.

  • Фрагменты были добавлены в Android API в сотовой версии Android, API версии 11.

Фрагмент имеет свой собственный макет и свое собственное поведение со своими собственными обратными вызовами жизненного цикла.

Вы можете добавлять или удалять фрагменты в действии во время его выполнения.

Вы можете объединить несколько фрагментов в одном действии для создания многопанельного пользовательского интерфейса.

Фрагмент может быть использован в нескольких видах деятельности.

Жизненный цикл фрагмента тесно связан с жизненным циклом активности хоста, что означает, что при приостановке действия все фрагменты, доступные в действии, также будут остановлены.

Фрагмент может реализовать поведение, которое не имеет компонента пользовательского интерфейса.

Фрагменты были добавлены в Android API в сотовой версии Android, API версии 11.

Вы создаете фрагменты, расширяя класс Fragment, и можете вставить фрагмент в макет своей деятельности, объявив этот фрагмент в файле макета активности как элемент <фрагмент> .

До введения фрагмента у нас было ограничение, потому что мы можем показывать только одну активность на экране в один данный момент времени. Поэтому мы не смогли разделить экран устройства и управлять различными частями по отдельности. Но с введением фрагмента мы получили больше гибкости и сняли ограничение на одновременную активность на экране. Теперь у нас может быть одно действие, но каждое действие может состоять из нескольких фрагментов, которые будут иметь свой собственный макет, события и полный жизненный цикл.

Ниже приведен типичный пример того, как два модуля пользовательского интерфейса, определенные фрагментами, можно объединить в одно действие для дизайна планшета, но разделить для дизайна телефона.

Фрагмент Android

Приложение может встраивать два фрагмента в Activity A при запуске на устройстве размером с планшет. Однако на экране размером с трубку недостаточно места для обоих фрагментов, поэтому действие A включает в себя только фрагмент списка статей, а когда пользователь выбирает статью, он запускает действие B, которое включает второй фрагмент для чтения. статья.

Фрагмент жизненного цикла

Фрагменты Android имеют свой жизненный цикл, очень похожий на активность Android. В этом разделе описываются различные этапы его жизненного цикла.

Фрагмент

Фрагмент жизненного цикла

Вот список методов, которые вы можете переопределить в своем классе фрагмента —

  • onAttach () Экземпляр фрагмента связан с экземпляром действия. Фрагмент и действие не полностью инициализированы. Обычно в этом методе вы получаете ссылку на действие, которое использует фрагмент для дальнейшей работы по инициализации.

  • onCreate () Система вызывает этот метод при создании фрагмента. Вы должны инициализировать основные компоненты фрагмента, которые вы хотите сохранить, когда фрагмент приостановлен или остановлен, а затем возобновлен.

  • onCreateView () Система вызывает этот обратный вызов, когда фрагменту необходимо впервые нарисовать свой пользовательский интерфейс. Чтобы нарисовать пользовательский интерфейс для вашего фрагмента, вы должны вернуть компонент View из этого метода, который является корнем макета вашего фрагмента. Вы можете вернуть null, если фрагмент не предоставляет пользовательский интерфейс.

  • onActivityCreated () onActivityCreated () вызывается после метода onCreateView () при создании действия хоста. Создан экземпляр действия и фрагмента, а также иерархия представления действия. На этом этапе к представлению можно обратиться с помощью метода findViewById (). пример. В этом методе вы можете создавать экземпляры объектов, для которых требуется объект Context.

  • onStart () Метод onStart () вызывается, когда фрагмент становится видимым.

  • onResume () Фрагмент становится активным.

  • onPause () Система вызывает этот метод как первый признак того, что пользователь покидает фрагмент. Это обычно, где вы должны зафиксировать любые изменения, которые должны быть сохранены после текущего сеанса пользователя.

  • onStop () Фрагмент будет остановлен вызовом onStop ()

  • onDestroyView () Представление фрагмента уничтожит после вызова этого метода

  • onDestroy () onDestroy () вызывается для окончательной очистки состояния фрагмента, но не гарантированно вызывается платформой Android.

onAttach () Экземпляр фрагмента связан с экземпляром действия. Фрагмент и действие не полностью инициализированы. Обычно в этом методе вы получаете ссылку на действие, которое использует фрагмент для дальнейшей работы по инициализации.

onCreate () Система вызывает этот метод при создании фрагмента. Вы должны инициализировать основные компоненты фрагмента, которые вы хотите сохранить, когда фрагмент приостановлен или остановлен, а затем возобновлен.

onCreateView () Система вызывает этот обратный вызов, когда фрагменту необходимо впервые нарисовать свой пользовательский интерфейс. Чтобы нарисовать пользовательский интерфейс для вашего фрагмента, вы должны вернуть компонент View из этого метода, который является корнем макета вашего фрагмента. Вы можете вернуть null, если фрагмент не предоставляет пользовательский интерфейс.

onActivityCreated () onActivityCreated () вызывается после метода onCreateView () при создании действия хоста. Создан экземпляр действия и фрагмента, а также иерархия представления действия. На этом этапе к представлению можно обратиться с помощью метода findViewById (). пример. В этом методе вы можете создавать экземпляры объектов, для которых требуется объект Context.

onStart () Метод onStart () вызывается, когда фрагмент становится видимым.

onResume () Фрагмент становится активным.

onPause () Система вызывает этот метод как первый признак того, что пользователь покидает фрагмент. Это обычно, где вы должны зафиксировать любые изменения, которые должны быть сохранены после текущего сеанса пользователя.

onStop () Фрагмент будет остановлен вызовом onStop ()

onDestroyView () Представление фрагмента уничтожит после вызова этого метода

onDestroy () onDestroy () вызывается для окончательной очистки состояния фрагмента, но не гарантированно вызывается платформой Android.

Как использовать фрагменты?

Это включает в себя ряд простых шагов для создания фрагментов.

  • Прежде всего решите, сколько фрагментов вы хотите использовать в упражнении. Например, давайте хотим использовать два фрагмента для обработки альбомного и портретного режимов устройства.

  • Затем, основываясь на количестве фрагментов, создайте классы, которые расширят класс Fragment . Класс Fragment имеет вышеупомянутые функции обратного вызова. Вы можете переопределить любую из функций в зависимости от ваших требований.

  • В соответствии с каждым фрагментом вам нужно будет создать файлы макета в XML-файле. Эти файлы будут иметь разметку для определенных фрагментов.

  • Наконец, измените файл активности, чтобы определить фактическую логику замены фрагментов на основе ваших требований.

Прежде всего решите, сколько фрагментов вы хотите использовать в упражнении. Например, давайте хотим использовать два фрагмента для обработки альбомного и портретного режимов устройства.

Затем, основываясь на количестве фрагментов, создайте классы, которые расширят класс Fragment . Класс Fragment имеет вышеупомянутые функции обратного вызова. Вы можете переопределить любую из функций в зависимости от ваших требований.

В соответствии с каждым фрагментом вам нужно будет создать файлы макета в XML-файле. Эти файлы будут иметь разметку для определенных фрагментов.

Наконец, измените файл активности, чтобы определить фактическую логику замены фрагментов на основе ваших требований.

Типы фрагментов

В основном фрагменты делятся на три этапа, как показано ниже.

Фрагменты одного кадра. Фрагменты одного кадра используются для мобильных устройств, таких как мобильные устройства, здесь мы можем показать только один фрагмент в качестве представления.

Фрагменты списка — фрагменты, имеющие специальный вид списка, называются фрагментом списка

Фрагмент транзакции — Использование с фрагментом транзакции. мы можем переместить один фрагмент в другой фрагмент.