Благодаря фрагментам мы можем разбивать шаблон на подшаблоны.
В папке layout приложения создаем файл представления fragment1.xml и добавим в него две кнопки:
fragment1.xml. Листинг 1. |
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/b1" android:text="Кнопка 1"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/b2" android:text="Кнопка 2"/> LinearLayout> |
Создаем в этой же папке еще один файл fragment2.xml и добавляем в него два переключателя:
fragment2.xml. Листинг 1. |
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <RadioButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/rb" android:text="Переключатель 1"/> <ToggleButton android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/tb"/> LinearLayout> |
И еще одно представление фрагмента.
Fragment3.xml. Листинг 1. |
xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv" android:src="@drawable/ic_launcher" android:layout_gravity="center"/> LinearLayout> |
Теперь примемся за создание самих фрагментов, они имеют расширение java. В папке, хранящей файл MainActivity.java создаем новый пакет с именем fragments:
В этом пакете fragments создаем 3 файла java класса: fragment1, fragment2, fragment3.
Добавим в файл fragment1.java наследование класса Fragment, вместо метода onCreate в этом случае используют onCreateView, зададим внешний вид класса с созданного раньше layout - файла fragment1.xml:
Класс fragment1. Листинг 1. |
import android.os.Bundle; |
Открываем файл fragment2 и делаем аналогично:
Класс fragment2. Листинг 1. |
import android.os.Bundle; |
В классе fragment3 аналогично подключим подшаблон fragment3.xml.
Класс fragment3. Листинг 1. |
import android.os.Bundle; |
Для вставки созданных фрагментов в главный файл шаблона activity_main.xml воспользуемся элементом :
Вставка фрагментов. Листинг 1. |
xml version="1.0" encoding="utf-8"?>
android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools"> <fragment android:layout_width="fill_parent" android:layout_height="wrap_content" android:name="home.study.fragments.fragment1" tools:layout="@layout/fragment1"/> <fragment android:layout_width="fill_parent" android:layout_height="wrap_content" android:name="home.study.fragments.fragment2" tools:layout="@layout/fragment2"/> <fragment android:layout_width="fill_parent" android:layout_height="wrap_content" android:name="home.study.fragments.fragment3" tools:layout="@layout/fragment3"/> LinearLayout> |