Итак, у меня есть эта структура для моих модулей в моем текущем приложении.
Я не нашел никакой официальной документации по мультимодульной навигации, но нашел эту статью, так что вот мои файлы Gradle:
Особенность 1 - Деталь
...
implementation project(":base")
implementation project(":feature-2-detail")
...
Функция 2 - Подробно
...
implementation project(":base")
implementation project(":feature-1-detail")
...
Функция 3 - Подробно
...
implementation project(":base")
implementation project(":feature-1-detail")
...
А вот мои навигационные графики:
Особенность 1 - Деталь
<navigation ...
android:id="@+id/graph_feature_1_id">
<include app:graph="@navigation/graph_feature_2" />
<fragment ...
android:id="@+id/nav_feature_1">
<action ...
app:destination="@+id/graph_feature_2_id" />
</fragment>
</navigation>
Функция 2 - Подробно
<navigation ...
android:id="@+id/graph_feature_2_id">
<include app:graph="@navigation/graph_feature_1" />
<fragment ...
android:id="@+id/nav_feature_2">
<action ...
app:destination="@+id/graph_feature_1_id" />
</fragment>
</navigation>
Функция 3 - Подробно
<navigation ...
android:id="@+id/graph_feature_3_id">
<include app:graph="@navigation/graph_feature_1" />
<fragment ...
android:id="@+id/nav_feature_3">
<action ...
app:destination="@+id/graph_feature_1_id" />
</fragment>
</navigation>
Итак, все работает с такого рода настройкой, но проблема здесь в том, что для подключения модуля к другому модулю мы должны добавить другую функцию в качестве зависимости от текущей функции. Как и в моем случае, Feature 1 - Detail может перейти к Feature 2 - Detail и наоборот, и при этом я получаю круговую зависимость в gradle.
Есть ли другой способ сделать многомодульную навигацию? Я пытался использовать глубокие ссылки, но безрезультатно.
Любая помощь будет оценена! Спасибо!