@aaevseev

Как правильно сделать навигацию в Android?

Есть приложение, которое в себе содержит нижнюю навигацию через BottomNavigationView.

Как вариант можно использовать Navigation Component. Проблема в том, что данное решение не сохраняет состояние самих фрагментов. То есть каждый переход будет заново пересоздавать все элементы в макете, что для пользователя будет не совсем приятно. Особенно, это заметно, когда на фрагменте отображается сложный UI или тот же webView. Можно сохранять состояние фрагмента во вьюмоделе или использовать официальный костыль от гугла, но это не спасает от пересоздание фрагментов. Без нагромождения кода в navigation я не видел, чтобы можно было хайдить сами фрагменты.

Можно разумеется всё делать напрямую через fragmentManager, но есть ли какое-то готовое решение в виде библиотеки или конкретных паттернов по созданию навигации, которые возьмут на себя часть кода, чтобы спустя время навигация не стала больным местом проекта, где будет уже сложно поддерживать и расширять.

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

Смотрел в сторону Cicerone, но он был изначально написан под архитектуру MVP и я не смог найти адекватные проекты под MVVM с ним.

Каким образом вы делаете навигацию в своих проектах и каким образом вы боретесь с сохранением фрагмента? Буду благодарен, если вы скинете пример навигации или статьи по этому по поводу.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы