Я использую safe-args для передачи аргументов из одного фрагмента в другой. Студия Android периодически генерирует класс fragmentArgs со всеми аргументами.
То, что я пробовал и действительно работает, - это изменение файла навигационного графика, создание проекта, затем отмена этих изменений и, наконец, создание проекта снова.
Используемые зависимости:
Модуль проекта:
ext.nav_version = '2.2.0-beta01'
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
Модуль приложения:
apply plugin: "androidx.navigation.safeargs.kotlin"
<fragment
android:id="@+id/someFragment"
android:name="package_name.SomeFragment"
android:label="@string/some_fragment">
<argument
android:name="source"
android:defaultValue="-1"
app:argType="integer" />
<argument
android:name="nationalId"
android:defaultValue="-1"
app:argType="integer" />
<argument
android:name="hudumaNumber"
android:defaultValue="-1"
app:argType="string" />
<argument
android:name="middleName"
android:defaultValue="None"
app:argType="string" />
</fragment>
Я ожидаю, что все аргументы будут найдены в сгенерированном классе, но это не так.