如何更改导航控制器中目的地的标签属性?

Agu*_*ana 5 android android-architecture-components android-jetpack

我正在尝试在 Android 中使用导航控制器

在此输入图像描述

如上图所示,我将label目的地的属性设置为“Home”。

这个标签将在我的工具栏中显示类似标题。我可以以编程方式更改该标签吗?因为我想动态设置工具栏标题。

我尝试使用更改工具栏标题,toolbar.title = "some title here"但它始终会与该标签的标题重叠。

那么如何解决这个问题呢?

Hus*_*dar 6

在您的活动中执行此操作,如下所示,这对我有用:

 setSupportActionBar(toolbar)
    val navController = findNavController(R.id.nav_controller_fragment)
    val appBarConfiguration = AppBarConfiguration(navController.graph)
    setupActionBarWithNavController(navController, appBarConfiguration)


    navController.addOnDestinationChangedListener { controller, destination, arguments ->
        when (destination.id) {
            R.id.mainFragment -> toolbar.title = "ok"
            else -> {
                toolbar.title = "General"
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

或者如果您想从片段中进行更改,请执行以下操作:

 override fun onStart() {
    super.onStart()
    (activity as MainActivity).toolbar.title = "changed"
}
Run Code Online (Sandbox Code Playgroud)