Восстановление состояний пунктов меню из пользовательского BottomNavigationView с помощью Jetpack Navigation 2Android

Форум для тех, кто программирует под Android
Anonymous
Восстановление состояний пунктов меню из пользовательского BottomNavigationView с помощью Jetpack Navigation 2

Сообщение Anonymous »

Как настроить WithNavController пользовательский BottomNavigationView со вставкой FloatingActionButton (FAB) с помощью Jetpack Navigation 2?
Изображение

В соответствии с навигацией 2.4.0-alpha01:

Код: Выделить всё

BottomNavigationView.setupWithNavController()
теперь автоматически сохраняет и восстанавливает состояние извлеченных пунктов назначения, обеспечивая поддержку нескольких обратных стеков без каких-либо изменений кода. При использовании навигации с фрагментами это рекомендуемый способ интеграции с несколькими обратными стеками.

Это работает как шарм, однако, когда я настраиваю свой BottomNavigationView и нажимаю FAB, состояния текущих пунктов меню перезагружаются. Как я могу добиться такого же поведения при нажатии на любой пункт меню с помощью FAB?

Код: Выделить всё

binding.activityMainBottomNavigationView.setupWithNavController(navController)

binding.activityMainFloatingActionButton.setOnClickListener {

// TODO: Fix navigation.
navController.navigate(R.id.homeFragment)

binding.activityMainBottomNavigationView.selectedItemId = R.id.homeFragment
}
Насколько я понимаю, вызов navController.navigate() может сбрасывать текущий nav_graph, используемый фрагментомContainerView, и поэтому текущие пункты меню перезагружаются. Есть ли способ избежать этого?


Подробнее здесь: https://stackoverflow.com/questions/687 ... ck-navigat

Вернуться в «Android»