Фрагменты в Android как независимые компоненты

Организация приложения на основе нескольких activity не всегда может быть оптимальной. Мир ОС Android довольно сильно фрагментирован и состоит из многих устройств. И если для мобильных аппаратов с небольшими экранами взаимодействие между разными activity выглядит довольно неплохо, то на больших экранах - планшетах, телевизорах окна activity смотрелись бы не очень в силу большого размера экрана. Собственно поэтому и появилась концепция фрагментов.

Фрагмент существует в контексте activity и имеет свой жизненный цикл, вне activity обособленно он существовать не может. Каждая activity может иметь несколько фрагментов.

Класс фрагмента должен наследоваться от класса Fragment.

Для создания визуального интерфейса фрагмент переопределяет родительский метод onCreateView. Он принимает три параметра:

● LayoutInflater используется для установки ресурса разметки для создания интерфейса

● ViewGroup container устанавливает контейнер интерфейса

● Bundle savedInstanceState передает ранее сохраненное состояние

Для создания интерфейса применяется метод inflate() объекта LayoutInflater. Он получает ресурс разметки layout для данного фрагмента, контейнер, в который будет заключен интерфейс, и третий булевый параметр указывает, надо ли прикреплять разметку к контейнеру из второго параметра.

Каждый фрагмент задается с помощью элемента <fragment>. Для каждого фрагмента должно быть установлены высота, ширина, id, а также имя. В качестве имени устанавливается полное имя класса с учетом пакета: android:name="com.example.fragmentapp.ContentFragment".

Объект FragmentManager с помощью метода beginTransaction создает объект FragmentTransaction.

FragmentTransaction выполняет два метода: add и commit. Метод add() добавляет фрагмент: add(R.id.container, new ContentFragment()) - первым аргументом передается ресурс разметки, в который надо добавить фрагмент. И метод commit() подтвержает и завершает операцию добавления.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: