Ответ
Для сохранения стека фрагментов при повороте экрана или пересоздании Activity используйте FragmentManager.saveBackStack(). Это сохранит текущий стек в Bundle, который можно восстановить через FragmentManager.restoreBackStack().
Пример:
// Сохранение
val savedState = supportFragmentManager.saveBackStack("my_stack")
// Восстановление
supportFragmentManager.restoreBackStack("my_stack", savedState)
Важные моменты:
- Для корректной работы все фрагменты должны иметь уникальные теги
- Состояние сохраняется только для транзакций, добавленных в back stack
- Альтернатива - использовать ViewModel или onSaveInstanceState для хранения информации о текущем стеке