BottomNavbar имеет 4 направления: Home, Test (выводит вас на тест -экран), история, настройка < /li>
TestScreen вложен Компонируемые функции, которые проводят пользователя через тест (он же много кликов, чтобы пройти тест). < /li>
< /ul>
Я вижу это в документации, написано в красном Предупреждение о том, чтобы не проходить NavControllers через композиции и разоблачить событие. Вместо этого. У меня есть настройка экрана, сочика и CardFrame1. У CardFrame1 есть кнопка, чтобы перейти в Comestreen: < /p>
Код: Выделить всё
@Serializable
object Main
@Serializable
object Setting
// this is being called form MainActivity
@Composable
fun AppHost() {
navController = rememberNavController()
NavHost(
navController = navController,
startDestination = Screen.Main.route
) {
composable(Screen.Main.route) {
MainScreen(
onNavigateToMeasure = {
navController.navigate(Screen.SomeScreen.route)
}
)
}
composable(Screen.Setting.route) {
SettingPage(
onNavigateToSetting1 = {
navController.navigate(Screen.Test1.route)
}
)
}
}
}
@Composable
fun SettingPage(someOnClick: () -> Unit){
Column(){
CardFrame1(someOnClick)
}
}
Я понял, что: < /p>
Мне придется выполнить эту функцию лямбды ( () -> Unit) Каждый раз, когда у меня есть кнопка или любой другой триггер, чтобы перейти к другому композиционному < /li>
Если навигация используется в слое композиционных функций, которые более глубокие, тогда я хотел бы нужно пройти Lambda через все из них как параметры. Composables? Существуют ли какие -либо устоявшиеся передовые практики для снижения навигационной пательки при поддержании многократного использования композиционных продуктов? Любое руководство со ссылками на официальные рекомендации будет высоко оценено.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ck-compose