如何使用 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
实施安全参数。
但是现在我正在尝试更改通过上述方法打开的片段的标题,例如;
MyActivity ->opens->MyFragment
MyFragment 更改标题
我知道如何在不使用导航 UI 组件的情况下更新它,但如果可能的话我想使用它们。
其他类似问题仅与我在上面提供的示例有关,用于打开新片段或建议使用不使用导航 UI 组件的典型方法, none 涵盖此特定场景。
这似乎是不可能的,唯一的方法是不使用导航架构组件直接执行此操作。
您可以通过从 activity 访问 supportActionBar 来更改标题:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(requireActivity() as AppCompatActivity).supportActionBar?.title = "Your Title"
}
我有一个 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
实施安全参数。
但是现在我正在尝试更改通过上述方法打开的片段的标题,例如;
MyActivity ->opens->MyFragment
MyFragment 更改标题
我知道如何在不使用导航 UI 组件的情况下更新它,但如果可能的话我想使用它们。
其他类似问题仅与我在上面提供的示例有关,用于打开新片段或建议使用不使用导航 UI 组件的典型方法, none 涵盖此特定场景。
这似乎是不可能的,唯一的方法是不使用导航架构组件直接执行此操作。
您可以通过从 activity 访问 supportActionBar 来更改标题:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(requireActivity() as AppCompatActivity).supportActionBar?.title = "Your Title"
}