相关疑难解决方法(0)

使用 jetpack 撰写导航中的 popBackStack 时如何更改脚手架顶部栏的标题?

我正在将多活动应用程序迁移到单活动应用程序以进行撰写。

我创建了一个可组合的主页,其中包含一个顶部应用程序栏,其标题如下所示:


@Composable
fun Home() {
val navController = rememberNavController()
    var actionBarTitle by rememberSaveable { mutableStateOf("Home") }
    var actionBarSubtitle by rememberSaveable { mutableStateOf("") }
    Scaffold(topBar = {
        Header(title = actionBarTitle, subTitle = actionBarSubtitle,
                onBackPress = { navController.popBackStack() },
            showInfo = true, onActionClick = {
                navController.navigate(Screen.Info.route)
            }, modifier = Modifier.fillMaxWidth())
    }) {
        AppNavigation(navController = navController, onNavigate = { title, subtitle ->
                actionBarTitle = title
                actionBarSubtitle = subtitle
            })
}


Run Code Online (Sandbox Code Playgroud)

每当我对任何屏幕使用 navController.navigate 时,都会触发 onNavigate,如下所示:


onNavigate("Top up", "Please topm up with minimum of …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

10
推荐指数
2
解决办法
5688
查看次数

TopAppBar 与导航集成的支架

如何根据 NavController 中的实际位置显示TopAppBar使用中的导航图标(后退箭头或菜单)?Scaffold我正在使用Navigating with Compose 1.0.0-alpha02。下面是一个示例代码,描述了它应该如何工作

@Composable
fun App()
{
    val navController = rememberNavController()

    Scaffold(
        topBar = {
            TopAppBar(
                title = { Text(text = "App title") },
                navigationIcon = {

                    /*
                    Check if navController back stack has more
                    than one element. If so show BackButton.
                    Clicking on that button will move back
                     */

                    val canMoveBack = true

                    if (canMoveBack)
                    {
                        IconButton(onClick = {
                            // Move back
                            navController.popBackStack()
                        }) {
                            Icon(asset = Icons.Outlined.ArrowBack)
                        }
                    } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-navigation android-jetpack-compose

5
推荐指数
1
解决办法
2541
查看次数