我正在尝试将 Jetpack Compose 导航应用到我的应用程序中。
我的屏幕:登录/注册屏幕和底部导航栏屏幕(呼叫、聊天、设置)。
我已经发现最好的方法是使用嵌套图。
但我不断遇到ViewModelStore should be set before setGraph call例外。但是,我认为这不是正确的例外。
我的导航已经是最新版本了。可能我的嵌套图逻辑不正确。
要求:我希望能够从登录或注册屏幕导航到任何底部栏屏幕并反向导航
@Composable
fun SetupNavGraph(
navController: NavHostController,
userViewModel: UserViewModel
) {
NavHost(
navController = navController,
startDestination = BOTTOM_BAR_GRAPH_ROUTE,
route = ROOT_GRAPH_ROUTE
) {
loginNavGraph(navController = navController, userViewModel)
bottomBarNavGraph(navController = navController, userViewModel)
}
}
Run Code Online (Sandbox Code Playgroud)
导航图.kt
fun NavGraphBuilder.loginNavGraph(
navController: NavHostController,
userViewModel: UserViewModel
) {
navigation(
startDestination = Screen.LoginScreen.route,
route = LOGIN_GRAPH_ROUTE
) {
composable(
route = Screen.LoginScreen.route,
content = {
LoginScreen(
navController = navController,
loginViewModel = userViewModel …Run Code Online (Sandbox Code Playgroud) kotlin android-jetpack android-architecture-navigation android-jetpack-compose jetpack-compose-navigation