Я пытаюсь повторно использовать фрагмент в разных навигационных графах с включенными безопасными аргументами. Я заметил, что если действия отличаются, я получаю ошибку компиляции. Это связано с тем, что автоматически сгенерированный код xxxFragmentDirections
сгенерирует только одно из действий.
В nav_graph_1. xml:
<navigation
...
<fragment
android:id="@+id/myFragment"
android:name="com.example.android.MyFragment">
<action
android:id="@+id/next_action"
app:destination="@+id/dest_one" />
</fragment>
...
В nav_graph_2 . xml:
<navigation
...
<fragment
android:id="@+id/myFragment"
android:name="com.example.android.MyFragment">
<action
android:id="@+id/other_action"
app:destination="@+id/other_dest" />
</fragment>
...
Простой пример использования: банковское приложение, которое имеет два потока: вывод и депозит, поэтому вы можете иметь два навигационных графика. У вас может быть AmountFragment
, где вы можете просто ввести номер, и его можно использовать для снятия или депозита. Однако, в зависимости от потока, действия / назначения могут быть разными.
Тогда как можно было бы повторно использовать этот фрагмент?