TGViewer
Android Developer Android Developer @android_dev_ru · 1.27K subscribers
Post #23 1.97K
Расскажите про способы добавления и переключения фрагментов. Как работать с бэкстэком?

Для управления фрагментами используются два класса: FragmentManager и FragmentTransaction.

Для получения FragmentManager используются метод активити getSupportFragmentManager() или метод фрагмента getChildFragmentManager().
FragmentManager начинает транзакцию и возвращает объект FragmentTransaction вызовом метода beginTransaction().

Методы класса FragmentTransaction, которые необходимо знать - add(), remove() и replace().

add() добавляет фрагмент на активити или другой фрагмент. Принимает аргументами containerViewId, в который добавляется фрагмент, инстанс фрагмента, тег.
Другой способ добавить фрагмент - определить в лэйауте с помощью тега <fragment>.

remove() - операция, обратная add(). Удаляет фрагмент.

replace() удаляет все фрагменты, добавленные методом add() в заданный контейнер, и добавляет переданный аргументом фрагмент в контейнер. Параметр tag может быть null.

Эти операции не выполняются сразу же после вызова методов. Метод commit() завершает транзакцию и выполняет операции транзакции.

Метод addToBackStack() добавляет транзакцию в Back Stack. Это значит, что когда пользователь нажмет Back транзакция откатится. addToBackStack() применяется ко всем операциям в транзакции. Например следующий код добавляет транзакцию из трех операций в бэкстэк:

fragmentTransaction
.add(R.id.fragmentContainer1, fragment1)
.add(R.id.fragmentContainer2, fragment2)
.replace(R.id.fragmentContainer1, fragment3)
.addToBackStack("tag")
.commit()

Метод popBackStack() удаляет транзакцию с верхушки бэкстэка, возвращает true, если бэкстэк хранил хотя бы одну транзакцию.
  • 👍 2
More from @android_dev_ru
  1. Oct 18, 2026Фоновая синхронизация запускается несколько раз Экран, вход в аккаунт и восстановление сет…
  2. Oct 17, 2026Клавиатура закрывает кнопку: где искать причину Форма помещается на экран, пока не открыла…
  3. Oct 16, 2026Практика · Android После возвращения пропал фильтр поиска Пользователь выбрал категорию, у…
  4. Jun 28, 2026🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращ…
  5. Jun 28, 2026✏️ Чек-лист: полный контроль качества Перед релизом или крупным обновлением пройдитесь по…
  6. Jun 27, 2026🎁 pod install --repo-update – надежный способ избежать "кэш-проблем" с CocoaPods Эта кома…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →