Разные фрагменты Android имеют общий backstack? - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть приложение, которое имеет следующую архитектуру:

Оно имеет FragmentActivity, которое содержит Fragment.Этот фрагмент содержит TabHost с 4 вкладками.Каждая вкладка имеет собственный макет.И я создаю новые фрагменты и связываю их с этими ayouts.Ну, наконец, у меня есть 4 фрагмента.

Каждый фрагмент может начинать несколько новых фрагментов, как его потомок.Я думал, что у каждого фрагмента есть свой backstack.Но похоже, что это не так.Похоже, это обычный backstack для этих фрагментов.

Я имею в виду, если я выберу первую вкладку и начну с нее новый дочерний фрагмент, то выберу вторую вкладку, оттуда начну новый дочерний фрагмент, затем вернусь на первую вкладку и нажму кнопку назад, и она уничтожитдочерний фрагмент из ВТОРОЙ вкладки, но не из первой вкладки.Если я нажму кнопку «Назад» еще раз, то она успешно уничтожит дочерний фрагмент из первой вкладки.

Что ж, я нашел здесь такую ​​же проблему Отдельный стек для каждой вкладки в Android с использованием фрагментов

Кто-то предлагает обернуть каждый из этих 4 фрагментов в FragmentActivity, но я боюсь, что на рефакторинг всего моего кода потребуется слишком много времени.Потому что проект скоро заканчивается, и у меня не так много времени для такого масштабного рефакторинга.

Может, кто-нибудь может предложить лучшее решение моей проблемы?

Дмитрий

1 Ответ

2 голосов
/ 16 февраля 2012

Имеет FragmentActivity, которая содержит фрагмент. Этот фрагмент содержит TabHost с 4 вкладками. Каждая вкладка имеет собственный макет. И я создаю новые фрагменты и связываю их с этими ayouts. Ну наконец то у меня 4 фрагмента.

Структура должна была быть такой:

Activity хостинг TabHost, содержащий 4 FragmentActivities (по одному на каждую вкладку). Каждый FragmentActivity будет иметь свой собственный backstack. Это должно дать вам результат, который вы хотите.

Если вы еще не решили попробовать FragmentTabsPager Возможно, вы захотите взглянуть на него и посмотреть, подходит ли оно вам. Это также улучшит взаимодействие с пользователем.

Рефакторинг не должен занимать много времени, если вы пытаетесь переместить вещи с Fragments на Activities и наоборот.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...