如何在 Android Jetpack Compose 子屏幕的 TopAppBar 中设置标题和按钮

问题描述 投票:0回答:0

我有一个使用顶部应用栏和底部导航的应用程序。 每个底部选项卡都有自己的 NavHostController 导航。 在我的主页选项卡上,我有一个像这样的 NavHostController


    fun HomeNavHostScreen(
        modifier: Modifier = Modifier,
        viewModel: HomeViewModel = hiltViewModel()
    ) {
    
        val title = stringResource(id = R.string.home)
        val navHostController: NavHostController = rememberNavController()
    
    Scaffold(
            topBar = {
                B2CTopAppBar(
                    title = title,
                    navHostController = navHostController
                )
            },
            content = {
                NavHost(
                    navHostController,
                    startDestination = HomeRoute.HomeNavHostScreen.route,
                    modifier = Modifier.padding(top = it.calculateTopPadding())
                ) {
    
                    composable(HomeRoute.HomeNavHostScreen.route) {
                        HomeScreen()
                    }
    
    composable(HomeRoute.DetailScreen.route) {
                        DetailScreen()
                    }
    
    composable(HomeRoute.SomeOtherScreen.route) {
                        SomeScreen()
                    }
    
    }
   }
  )
}

我在这里设置了主屏幕的标题,但对于我的详细信息屏幕,我想将标题更改为其他内容,并为每个子屏幕(DetailScreen 等)向 TopAppBar 添加按钮

我试图从这里删除脚手架并将其分别添加到我的每个视图到主屏幕、细节等。但是在我发现每个导航堆栈有超过 1 个脚手架是不正确的。

我是 Android 和 Jetpack Compose 的新手。在 iOS 中,您可以访问 navigationController 并可以设置所有子视图的标题和按钮。但我似乎无法在这里找到一种方法。 在此先感谢您的帮助。

android-jetpack-compose android-navigationview jetpack-compose-navigation
© www.soinside.com 2019 - 2024. All rights reserved.