我开始使用jetpack组合导航,但是当我调用navController.navigateUp()时遇到了一个问题。由于某种原因,它弹出了两个屏幕而不是一个。
主菜单-〉列表-〉新建便笺-〉调用navController. navigateUp()-〉列表-〉主菜单.
这是导航主机代码:
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = NoteScreen.MainScreen.route
) {
composable(route = NoteScreen.MainScreen.route) {
MainScreen(navController)
}
composable(route = NoteScreen.ListScreen.route) {
ListScreen(navController)
}
composable(route = NoteScreen.DetailScreen.route + "/{${Constants.NOTE_ID}}") {
DetailScreen()
}
composable(route = NoteScreen.NewNoteScreen.route) {
NewNoteScreen(navController)
}
}
这里是调用navigateUp()的代码
val state by remember {
newNoteViewModel.state
}
if (state.finishUpload) {
if (state.countFail == 0) {
navController.navigateUp()
}
先谢了。
编辑
出于某种原因,这是多次调用。
1条答案
按热度按时间bjp0bcyl1#
已经找到了解决方案,问题是我调用它作为对组合的检查,他在navigateUp上再次运行,我需要调用它作为启动效果。