Правильная стратегия использования нижней панели навигации с Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Anonymous
Правильная стратегия использования нижней панели навигации с Jetpack Compose

Сообщение Anonymous »

Официальная документация компонента Compose Navigation предполагает создание компонента навигации путем добавления NavHost внутрь Scaffold.
см. https://developer.android.com/jetpack/compose /navigation#bottom-nav
Проблема, с которой я столкнулся при этом подходе, заключается в том, что при этом подходе нижняя панель навигации будет видна на всех экранах. Я хочу, чтобы он был виден только на экранах, которые присутствуют в элементах нижней панели.
Второй подход к добавлению нижней панели — не добавлять NavHost внутри Scaffold. Вместо этого добавьте нижнюю панель в одно из мест назначения, а затем скройте/покажите составные элементы из тела Scaffold на основе выбранного таким образом индекса.

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

var selectedBottomBarIndex by remember {
mutableStateOf(0)
}

Scaffold(
bottomBar = {
MyBottomBar(currentIndex = selectedBottomBarIndex, onChanged = {
selectedBottomBarIndex = it
}
)
} {
when (selectedBottomBarIndex) {
0 -> HomeScreen(navController)
1 -> AssignmentHomeScreen(navController)
2 -> CategoryScreen(navController)
else -> ProfileHomeScreen(navController)
}
}
Я просто хочу знать, каковы плюсы и минусы обоих способов добавления нижней навигации.
и безопасно ли использовать второй подход в рабочем приложении.


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

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