0
@Composable
fun MainLayout(viewModel: GoalsViewModel){
    val navController = rememberNavController()
    NavHost(
        navController = navController,
        startDestination = "Home",
        modifier = Modifier.padding(16.dp)
    ) {
        composable("Home"){
            BodyContent(navController)
        }
        composable("Goals"){
            GoalScreen(viewModel, navController)
        }
        composable("ViewGoals"){
            ViewGoalsScreen(viewModel)
        }
        composable("Fitness"){
            FitnessForm()
        }
    }

    Scaffold(
        topBar = {
            TopNavBar()
        }
    ){
        BodyContent(navController)
    }

}

为什么我主页上的按钮什么都不做?它将从可组合函数调用它的 println,但不会重定向或做任何事情

4

1 回答 1

0

You need to move your NavHost to the body of your Scaffold:

@Composable
fun MainLayout(viewModel: GoalsViewModel){
    val navController = rememberNavController()

    Scaffold(
        topBar = {
            TopNavBar()
        }
    ){
        NavHost(
            navController = navController,
            startDestination = "Home",
            modifier = Modifier.padding(16.dp)
        ) {
            composable("Home"){
                BodyContent(navController)
            }
            composable("Goals"){
                GoalScreen(viewModel, navController)
            }
            composable("ViewGoals"){
                ViewGoalsScreen(viewModel)
            }
            composable("Fitness"){
                FitnessForm()
            }
        }
    }
}
于 2021-08-27T14:56:53.970 回答