Почему мой NavController делает избыточную маршрутизацию при запуске приложения?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой NavController делает избыточную маршрутизацию при запуске приложения?

Сообщение Anonymous »

Я делаю свои первые шаги в навигационных системах Compose (используемые намерения ранее), и я создал минимальную настройку NavController :
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {

SetupNavigation()

}
}

@Composable
fun MainScreen(controller: NavController) {
MyEyeTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->

Box(
modifier = Modifier
.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Button(
modifier = Modifier.padding(innerPadding),
onClick = { controller.navigate("menu") }
) {
Text(text = "Click me")
}
}
}
}
}
}
< /code>
Очень просто. Сама маршрутизация выглядит следующим образом: < /p>
@Composable
fun SetupNavigation() {

val controller = rememberNavController()

NavHost(
navController = controller,
startDestination = "main"
) {
composable("menu") {
println("menu-prev:" + controller.previousBackStackEntry?.destination?.route)
println("menu:" + controller.currentBackStackEntry?.destination?.route)

}
composable("main") {
println("main-prev:" + controller.previousBackStackEntry?.destination?.route)
println("main:" + controller.currentBackStackEntry?.destination?.route)

MainScreen(controller)
}
}
}
< /code>
Как я уже сказал, я новичок в этой функциональности, и я ожидаю, что приложение будет входить так: < /p>
main-prev:null
main:main
menu-prev:main
menu:menu
< /code>
Однако я получаю следующий вывод: < /p>
main-prev:null
main:main
(button click)
main-prev:main
main:menu
menu-prev:main
menu:menu
menu-prev:main
menu:menu
menu-prev:main
menu:menu
< /code>
Похоже, приложение наносит три раза! Почему?


Подробнее здесь: https://stackoverflow.com/questions/794 ... -app-start
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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