Я использую компонент навигации от Jetpack.
Мой основной график огромен, поэтому я решил разбить его на разные графики и использовать функциональность <include />
.
Проблема в том, что некоторые из включенных графиков получают аргументы, но Android, похоже, игнорирует аргументы при создании навигации Directions
Ie:
Основной график (упрощенный)
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<fragment
android:id="@+id/listFragment"
android:name="com......ListFragment">
<action
android:id="@+id/view_detail"
app:destination="@id/item_detail"/>
</fragment>
<include app:graph="@navigation/included_graph"/>
</navigation>
Включенный график: (упрощенный)
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_detail"
app:startDestination="@id/itemDetailFragment">
<argument
android:name="item_id"
app:argType="integer" />
<fragment
android:id="@+id/itemDetailFragment"
android:name="com......ItemDetailFragment">
<argument
android:name="item_id"
app:argType="integer" />
</fragment>
[...]
</navigation>
Класс, созданный Android,
class ListFragmentDirections private constructor() {
companion object {
fun viewDetail(): NavDirections =
ActionOnlyNavDirections(R.id.view_detail)
}
}
Кажется, что аргумент, полученный включенным графом, игнорируется - я не могу безопасно передать аргумент.
Есть ли обходной путь для этого?
Меня интересует любая альтернатива, позволяющая разбить график на файлы меньшего размера, в зависимости от <include />
или нет.