如何使用 Navigation UI 组件从片段设置工具栏标题

How to set toolbar title from fragment using Navigation UI Component

我有一个 activity,其中的工具栏来自 Android Studio 中的默认布局,我可以通过以下方法轻松更改工具栏中的标题:

    Bundle bundle = new Bundle();
    bundle.putString("toolbarTitle", "A new title");

    NavHostFragment
        .findNavController(this)
        .navigate(R.id.action_navigation_conversation_to_placeholder, bundle);

已在导航菜单布局中为 toolbarTitle 实施安全参数。

但是现在我正在尝试更改通过上述方法打开的片段的标题,例如;

我知道如何在不使用导航 UI 组件的情况下更新它,但如果可能的话我想使用它们。

其他类似问题仅与我在上面提供的示例有关,用于打开新片段或建议使用不使用导航 UI 组件的典型方法, none 涵盖此特定场景。

这似乎是不可能的,唯一的方法是不使用导航架构组件直接执行此操作。

您可以通过从 activity 访问 supportActionBar 来更改标题:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    (requireActivity() as AppCompatActivity).supportActionBar?.title = "Your Title"
}