Глобальные действия могли бы быть способом, но я не стал работать так, как хотел, когда извлек вложенный граф в его собственный .xml
.Но это оказалось неловко простым - просто добавьте аргументы вручную в коде к своему действию.
Примером, связанным с вопросом, будет:
Сохраните вложенный график в nested_graph.xml
это будет выглядеть примерно так:
<navigation
android:id="@+id/nested_graph"
app:startDestination="@id/fragmentB"
...>
<fragment
android:id="@+id/fragmentB"
...>
<argument
android:name="foo"
app:argType="integer"/>
<action
... // navigation action to FragmentC />
</fragment>
<fragment ... // FragmentC stuff
</navigation>
Чтобы передать аргументы nested_graph.xml
из другого графа, скажем root_graph.xml
do
<navigation
android:id="@+id/root_graph"
app:startDestination="@id/fragmentA"
...>
<fragment
android:id="@+id/fragmentA"
... >
<action
android:id="@+id/action_fragmentA_to_nested_graph"
app:destination="@id/nested_graph">
<argument
android:name="foo"
app:argType="integer"/>
</action>
</fragment>
<include app:graph="@navigation/nested_graph"/>
</navigation>
Другими словами, просто добавьте то же самое <argument ... />
на root_graph
действие, которое вы ожидаете получить в nested_graph
.