Здравствуйте, подскажите, как организовать архитектуру следующего приложения.
Есть несколько основных разделов, скажем, "новости", "сервисы", "профиль".
В каждом может быть несколько различных экранов (список новостей -> конкретная новость).
Внизу панель навигации, там кнопки переключающие между разделами (как табы).
Хочется, чтобы "табы" сохраняли своё состояние.
То есть, открыл новость, перешёл в профиль, вернулся в новости и там по прежнему висит открытая новость.
И кнопка "назад" работала в рамках конкретного раздела.
Моё решение на данный момент:
* Одно активити
* Внизу фрагмент с навигацией
* Остальная часть экрана - FrameLayout, в котором три контейнера под каждый раздел. Один visible, другие invisible
* Фрагмент навигации переключает видимость контейнеров и, при первом показе контейнера, в него вставляется некий "дефолтны" для раздела фрагмент (список новостей)
* Далее тот фрагмент уже сам переходит по страницам с помощью fragmentManager + addToBackStack
В принципе, всё работает как надо, кроме кнопки "назад".
* В первом разделе переходим в конкретную новость
* Переключаемся на другой раздел и там куда-то переходим
* Возвращаемся в первый - видим открытую ранее новость
* Жмём "назад", ожидая, что вернёмся в список новостей
* Но, ясное дело, вместо этого откатывается переход в другом (скрытом) контейнере
Организация приложения с "разделами"/табами
-
- Сообщения: 1
- Зарегистрирован: 02 окт 2020, 14:07