Android В Studio 4.0 представлен функциональный модуль Dynami c с поддержкой графа навигации.
Чтобы использовать функциональный модуль Dynami c внутри графа навигации, необходимо использовать Android Studio 4.0 или выше.
Шаг 1:
В вашем основном app / build.gradle определите зависимость модуля функции
android {
...
dynamicFeatures = [":camera", ":video", ":payment"]
}
Шаг 2:
В функции module build.gradle, определите зависимости его модулей. Обратите внимание, что один функциональный модуль Dynami c может зависеть от другого функционального модуля Dynami c.
В вашем payment / build.gradle
dependencies {
implementation project(':app')
}
В вашей камере / build.gradle
dependencies {
implementation project(':app')
}
В вашем видео / build.gradle
dependencies {
implementation project(':app')
implementation project(':camera')
}
Шаг 3:
Вам необходимо включить флаг feature.on.feature
для Android студии.
- Go в меню «Справка»> «Редактировать пользовательские параметры виртуальной машины».
добавьте rundebug.feature.on.feature в файл, сохраните изменения и перезапустите Android Studio.
Run> Edit configurations и в Run / Debug Configuration вы можете определить различные конфигурации установки для тестирования.
Шаг 4:
Вам необходимо использовать DynamicNavHostFragment
вместо NavHostFragment
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.dynamicfeatures.
fragment.DynamicNavHostFragment"
app:navGraph="@navigation/nav_graph"
… />
Шаг 5:
Определите свой навигационный график. Здесь вы можете использовать атрибут app:moduleName
для определения зависимости модуля.
<navigation>
<fragment
app:moduleName="featureA"
android:name="full.path.to.MyFragment"/>
<activity
app:moduleName="featureB"
android:name="full.path.to.MyActivity"/>
</navigation>
Библиотека навигации сделает все остальное за вас.
Удачного кодирования :)