Навигация поддерживает аргументы в метках начиная с Навигация 1.0.0-alpha08 или выше:
Метки назначения при использовании с методами NavigationUI теперь будут автоматически заменять {argName}
экземпляров в вашем android:label
на правильный аргумент 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)
Конечно, вы можете прослушивать навигационные события самостоятельно и использовать свой собственный OnDestinationChangedListener
, чтобы делать все, что вы хотите, включая установку метки на то, что вы хотите. Нет необходимости использовать NavigationUI, и любой слушатель, добавляемый после вызова методов NavigationUI, будет переопределять все, что он устанавливает.