Я использую навигационную библиотеку в своем приложении для Android с несколькими активациями, и я хотел бы знать, есть ли способ разделить некоторые действия (которые открывают определенную страницу с предопределенными аргументами) между несколькими навигационными захватами. Это выглядит так:
- Существует ActivityB , для которого нужны аргументы a , b , c inего навигационное действие.
- ActivityA имеет NavGraphA , которое открывает ActivityB .
- ActivityC имеет NavGraphC , который также открывает ActivityB .
Теперь я хотел бы использовать действие, которое открывает ActivityB в обоих NavGraphA и NavGraphC , желательно без дублирования действия, его аргументов и самого действия в обоих графиках (например, какое-то включение?).
Я знаю, что можно определить ActivityB как элемент активности на обоих графиках, но затем мне нужно снова определить действие с одними и теми же аргументами снова.
Мне нужно будет сделать что-то подобное на обоих графиках:
<fragment
android:id="@+id/xyFragment"
android:name="x.y.fragment"
android:label="xyFragment" >
<action
android:id="@+id/action_xyFragment_to_ActivityB"
app:destination="@id/activityB" />
</fragment>
<activity
android:id="@+id/activityB"
android:name="x.y.ActivityB"
android:label="ActivityB" >
<argument
android:name="a"
app:argType="argument.A" />
<argument
android:name="b"
app:argType="argument.B" />
<argument
android:name="c"
app:argType="argument.C" />
</activity>
Как видите, я могу объединить эти аргументы в один класс, что уменьшит количество аргументов,но исходная проблема все еще будет там.
Или я могу просто скопировать ее с разными идентификаторами.
Может быть, есть способ как-то включить глобальное действие общего действия в несколько графиков?