Вот сценарий:
- Макет основной деятельности разделен на 2 раздела, один из которых занимает «центральную» часть экрана, а другой - «полный экран»
- «центральный» контейнер заполняется фрагментом A с использованием
replace(central_container_id...)
и addToBackStack
- При некоторых действиях пользователя внутри фрагмента A фрагмент B добавляется в «полноэкранный» контейнер с
replace
и addToBackStack
Проблема: выясняется, что из-за вышеприведенных 1-2-3 шагов фрагмент пользовательский интерфейс не разрушается, когда находится в backstack.Кроме того, когда пользователь возвращается из фрагмента B, используя popBackstack
, обрабатывается только последовательность построения меню (onCreateOptionsMenu
, onPrepareOptionsMenu
).
Вопросы:
- Является ли вышеуказанное поведениеправильно (представление фрагмента не уничтожается)?
- Это неправильное использование backstack (для помещения фрагментов в один и тот же backstack, но в разные контейнеры)?
- Как обеспечить уничтожение представления фрагмента после помещения в backstack(кроме использования одного контейнера для всех фрагментов backstack, конечно)?