Ответ
Back Stack (стек возврата) FragmentManager содержит последовательность транзакций с фрагментами. При замене/добавлении фрагмента через addToBackStack(null), в стек помещается не сам фрагмент, а запись о транзакции (FragmentTransaction). При нажатии "Назад" система отменяет последнюю транзакцию из стека.
Пример:
supportFragmentManager.beginTransaction()
.replace(R.id.container, FragmentB())
.addToBackStack("transaction_B") // можно указать имя
.commit()
Нюансы:
- Стек может содержать транзакции с несколькими фрагментами
- Имя в
addToBackStack()используется для поиска транзакции (например,popBackStack("name", 0)) popBackStack()удаляет транзакции до указанной (POP_BACK_STACK_INCLUSIVE)