Освой Android играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
В студии компонент Fragment находится в разделе Containers (раньше в Layouts), что позволяет рассматривать его как контейнер. В то же время фрагмент обладает функциональностью активности (жизненный цикл, схожие методы и т.д.).
Сами фрагменты появились в API 11, но в целях совместимости была написана специальная библиотека Android Support library для старых устройств, которая по умолчанию готова к использованию в новых проектах. Позже появилась отдельная библиотека из AndroidX, которую и следует использовать в своих проектах.
Рассмотрим простейший пример с использованием фрагмента, чтобы понять основные принципы работы. Пример писался давно, сейчас некоторые классы изменились, но суть осталась прежней.
Сначала нам нужно создать класс фрагмента. Воспользуемся услугами студии и создадим фрагмент при помощи мастера File | New | Fragment | Fragment (Blank). В диалоговом окне оставляем всё без изменений.
Будем создавать большой и страшный код для класса.
Оставим пока в покое этот класс и создадим макет. В палитре инструментов выберите раздел Layouts и перетащите на вашу заготовку экрана элемент Fragment.
Среда разработки предложит вам выбрать из списка готовый класс, который наследуется от класса Fragment или его потомков. Среди них будет созданный нами только что класс BlankFragment.
Код в классе фрагмента содержит интерфейс, который необходимо реализовать в активности, иначе мы получим ошибку.
package ru.alexanderklimov.fragmentdemo;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
implements BlankFragment.OnFragmentInteractionListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
Запустим код и увидим, что внутри активности есть фрагмент (текст "Hello blank fragment").
В дальнейшем вам будут попадаться уроки с применением фрагментов, в которых будет содержаться дополнительная информация.
Используем фрагмент. Часть первая
Fragment (Фрагменты). Часть вторая
Fragment (Фрагменты). Часть третья
Fragment (Фрагменты). Часть четвёртая
Fragment (Фрагменты). Часть пятая
Fragment (Фрагменты). Часть шестая. Удержание состояния фрагмента
Программное добавление фрагментов
Доступ к View внутри динамического фрагмента из активности
Создание контекстного меню внутри фрагмента
Создание фрагментов в Android Studio
DesarrolloAntonio/FragmentTransactionExtended - библиотека анимаций между фрагментами.