gpt4 book ai didi

android - 使用导航组件动态设置工具栏标题

转载 作者:搜寻专家 更新时间:2023-11-01 07:41:52 24 4
gpt4 key购买 nike

我正在尝试动态设置工具栏标题,我不知道是否可行。

假设我有一个项目列表,我单击它的每个项目都会打开新 fragment ,因此我尝试动态更改每个项目的工具栏标题。

我试过了:

it.findNavController().navigate(direction)
it.findNavController().currentDestination!!.label = someTitle

但它不起作用。

有一些相关主题,即:

How to set title in app bar with Navigation Architecture Component

但它并没有有效地解决我的问题,这是一种变通方法。

最佳答案

Navigation 1.0.0-alpha08 开始,导航支持标签中的参数或更高:

Destination labels, when used with NavigationUI methods, will now automatically replace {argName} instances in your android:label with the correct argument b/80267266

因此,您可以将标签设置为 android:label="{dynamicTitle}",然后将参数传递给您的 navigate 调用。当您使用 Safe Args 时,您需要向目标添加一个参数:

<fragment
android:id="@+id/myFragment"
android:name=".MyFragment"
android:label="{dynamicTitle}">
<argument
android:name="dynamicTitle"
app:argType="string"/>
</fragment>

然后在构建路线时传入动态标题:

val directions = YourDirections.actionToMyFragment(someTitle)
it.findNavController().navigate(directions)

当然可以listen for navigation events你自己并使用你自己的 OnDestinationChangedListener 做任何你想做的事情,包括将标签设置为你想要的任何东西。不需要使用 NavigationUI,调用 NavigationUI 方法后添加的任何监听器都将覆盖它设置的任何内容。

关于android - 使用导航组件动态设置工具栏标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com