如何使用导航UI组件

问题描述

我有一个来自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->打开-> MyFragment

  • MyFragment更改标题

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

其他类似问题仅与上面已经提供的示例有关(当打开新片段时),或者通过建议使用不使用导航UI组件的典型方法来解决,这些都不能涵盖此特定方案。

解决方法

您可以通过从活动中访问 supportActionBar 来更改标题:

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

似乎唯一不可能通过不使用导航体系结构组件而直接实现此目标的方法是不可能的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...