如何使用导航组件从基础模块或动态模块导航到动态模块?
如何在导航图中定义目标模块?
如何使用导航组件从基础模块或动态模块导航到动态模块?
如何在导航图中定义目标模块?
要使用导航图中的动态功能模块,您需要使用Android Studio 4.0或更高版本。
在您的主 app/build.gradle 中,定义功能模块依赖项
android {
...
dynamicFeatures = [":camera", ":video", ":payment"]
}
在功能模块 build.gradle 文件中,定义其模块依赖项。请注意,一个动态功能模块可以依赖于另一个动态功能模块。
在您的付款/build.gradle
dependencies {
implementation project(':app')
}
在你的相机/build.gradle
dependencies {
implementation project(':app')
}
在你的视频/build.gradle
dependencies {
implementation project(':app')
implementation project(':camera')
}
您需要feature.on.feature
为 Android Studio 启用该标志。
将 rundebug.feature.on.feature 添加到文件中,保存更改,然后重新启动 Android Studio。
运行 > 编辑配置,在运行/调试配置中,您可以定义各种安装配置以进行测试。
您需要使用DynamicNavHostFragment
而不是NavHostFragment
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.dynamicfeatures.
fragment.DynamicNavHostFragment"
app:navGraph="@navigation/nav_graph"
… />
定义您的导航图。这里可以使用属性app:moduleName
来定义模块依赖。
<navigation>
<fragment
app:moduleName="featureA"
android:name="full.path.to.MyFragment"/>
<activity
app:moduleName="featureB"
android:name="full.path.to.MyActivity"/>
</navigation>
导航库将为您完成其余的工作。
快乐编码:)