Контекст моего приложения: < /p>
Topbar с заголовком < /li> < Br /> 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 через все из них как параметры. Полем Но я хотел знать, какие другие реализации люди считают действительными. Я видел много постов на YouTube и средних, где люди будут передавать NavController в качестве параметра через композиции, но я подумал, что это не рекомендуется из документации Android. Централизованный класс навигации, который обрабатывает всю навигацию, чтобы вам не приходилось распространять их через слои композиционных устройств и вместо этого может вызвать метод навигации через объект класса.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ck-compose
Мобильная версия