Правильная стратегия использования нижней панели навигации с 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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