Wie kann ich WithNavController eine benutzerdefinierte BottomNavigationView mit einem eingefügten FloatingActionButton (FAB) mit Jetpack Navigation 2 einrichten?
Gemäß Navigation 2.4.0-alpha01:
Code: Select all
BottomNavigationView.setupWithNavController()
speichert und stellt jetzt automatisch den Status von gepoppten Zielen wieder her und ermöglicht so die Unterstützung mehrerer Backstacks ohne Codeänderungen. Wenn Sie Navigation mit Fragmenten verwenden, ist dies die empfohlene Methode zur Integration mit mehreren Backstacks.
Das funktioniert wunderbar, wenn ich jedoch meine BottomNavigationView einrichte und die FAB drücke, werden die Zustände der aktuellen Menüelemente neu geladen. Wie kann ich mit dem FAB das gleiche Verhalten beim Klicken auf einen beliebigen Menüpunkt erreichen?
Code: Select all
binding.activityMainBottomNavigationView.setupWithNavController(navController)
binding.activityMainFloatingActionButton.setOnClickListener {
// TODO: Fix navigation.
navController.navigate(R.id.homeFragment)
binding.activityMainBottomNavigationView.selectedItemId = R.id.homeFragment
}
Soweit ich weiß, kann der Aufruf von navController.navigate() den aktuellen nav_graph zurücksetzen, der von fragmentContainerView verwendet wird, und deshalb werden die aktuellen Menüelemente neu geladen. Gibt es eine Möglichkeit, dies zu vermeiden?