В этом уроке

  1. Создание класса фрагмента
  2. Добавить фрагмент к activity с помощью XML

Вы также должны прочитать

Попробуйте

СКАЧАТЬ ОБРАЗЕЦ

FragmentBasics.zip

Вы можете думать о фрагменте как о модульной части activity , которая имеет свой жизненный цикл, получает собственные события ввода, и который вы можете добавить или удалить в то время как activity работает (как бы «вложенная activity «, которую вы можете использовать повторно в различных activity ). Этот урок показывает, как можно расширить Fragment класс используя Библиотеку Поддержки так, чтобы ваше приложение оставалось совместимым с устройствами под управлением старых версий систем вплоть до Android 1.6.

Примечание: Если вы решили, что минимальный требуемый уровень API вашего приложения 11 или выше, вам не нужно использовать Библиотеку поддержки, и вместо неё можно использовать встроенную функциональность Fragment класса и связанные с ним API. Только знайте, что этот урок ориентирован на использование API из Библиотеки поддержки, которые используют определенную сигнатуру пакета и иногда слегка разные имена API, чем в версии включенной в платформу.

Прежде чем начать этот урок, вы должны настроить Android проект для использования Библиотеки поддержки. Если вы не использовали библиотеку поддержки прежде, настройте проект для использования v4 библиотеки, следуя документу Настройка Библиотека Поддержки . Тем не менее, вы можете также добавить Панель действий в вашу activity , используя вместо этого библиотеку v7 appcompat , которая совместима с Android 2.1 (Уровень API 7), и также включает в себяFragment API.

 

Создание класса фрагмента


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

Одно из различий при создании Fragment это то, что вы должны использовать onCreateView()метод обратного вызова, чтобы задать макет. На самом деле, это единственный метод обратного вызова нужный вам для работы фрагмента. Например, вот простой фрагмент, который определяет свой собственный макет:

 

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

Более подробная информация о жизненном цикле фрагментов и методах обратного вызова доступна в Фрагменты (руководство разработчика).

 

Добавить фрагмент к activity с помощью XML


В то время как фрагменты многоразовые модульные компоненты пользовательского интерфейса, каждый экземпляр Fragment класса должен быть связан с родительской FragmentActivity. Вы можете достичь этой связи путем определения каждого фрагмента в пределах XML файла макета вашей activity .

Примечание: FragmentActivity это специальная activity , предоставляемая Библиотекой поддержки для работы с фрагментами на системе версии ниже уровня API 11. Если минимальная версия системы, которую вы поддерживаете уровня API 11 или выше, то вы можете использовать обычный Activity.

Вот пример файла макета, который добавляет два фрагмента к activity , когда экран устройства считается «большим» (заданный с помощью large спецификатора в имени каталога).

res/layout-large/news_articles.xml

Полезный совет: Для дополнительной информации о создании макетов для различных размеров экрана, читайте Поддержка различных размеров экрана.

Затем примените макет к своей activity :

 

Примечание: Когда вы добавляете фрагмент в макет activity , задавая фрагмент в XML файле макета, вы не можете удалить фрагмент во время выполнения. Если вы планируете менять свои фрагменты в и во время взаимодействия с пользователем, необходимо добавлять фрагмент в activity при первом запуске activity, как показано в следующем уроке.

 

Создание фрагментов в Android обновлено: Ноябрь 23, 2015 автором: admin

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

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

*
*
Website