Главная » Разработка для Android » ФРАГМЕНТЫ И МНОГОПЛАТФОРМЕННАЯ ПОДДЕРЖКА – программирование Android

0

 

Теперь, когда вы уже написали немного кода для Android, вы знаете, что Activity, View и подклассы View, отвечающие за макет и виджеты, – это одни из важнейших классов Android. Как правило, пользовательский интерфейс создается из виджетов, организованных в макеты, например ListView в LinearLayout. Единая иерархия объектов вида загружается из ресурса (или создается кодом) при запуске Activity. Она инициализируется и отображается на экране устройства.

На небольших экранах все нормально: пользователи переходят с экрана на экран, чтобы попасть в различные части графического интерфейса программы, а класс Activity (активность; так в Android понимается концепция задачи) поддерживает стек переходов назад (back stack), который обеспечивает быстрое и интуитивно понятное перемещение по интерфейсу, имеющему строгую древовидную структуру. Однако ситуация коренным образом меняется, если мы говорим о широком экране планшета. Содержимое в одних частях экрана остается неизменным дольше, чем в других. Содержимое некоторых частей экрана может влиять на содержимое других частей.

Вполне реально создавать такие пользовательские интерфейсы, в которых отдельные части экрана изменяются в ответ на действия в других частях экрана. Изменение происходит путем обычного отображения новых видов и скрытия старых. Но разработчики Android решили, что обычного соглашения будет недостаточно, чтобы стимулировать создание великолепных широкоэкранных пользовательских интерфейсов, обладающих единообразным внешним видом и поведением. Чтобы продвигать такие новые варианты взаимодействия, были реализованы некоторые функции, основанные на классе Fragment, входящем в комплект для разработки ПО Android 3.0 (API 11, Honeycomb).

Объект Fragment совмещает черты вида View и активности Activity. Подобно View, он может входить в состав ViewGroup или быть частью макета страницы. Но фрагмент не является подклассом View, и добавить его в ViewGroup можно только при помощи FragmentTransaction. Подобно Activity, фрагмент обладает жизненным циклом, который реализует интерфейсы ComponentCallbacks и ContextMenuListener. Но в отличие от активности у фрагмента нет контекста (Context), и его жизненный цикл зависит от контекста той активности, к которой этот фрагмент относится.

Фрагменты – это основное нововведение в API Android. Чтобы упростить переход на новый API, Google предоставляет библиотеку обеспечения совместимости, которая поддерживает такие функции вплоть до версии SDK 2.0 (API 5, Eclair).

Чуть ниже мы рассмотрим проблему обратной совместимости. Но сначала познакомимся с фрагментами в их нативном окружении – Honeycomb.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии