Navigation相信大家都熟悉,网上也有很多教程,但是很少有多Module切换的时候,要怎么使用的,用百度搜索了各种都没找到,后来用Google,一会就搜到了方法
思路是这样的:通过包名,导航文件,找到导航id,而不用module之间相互依赖
interface NavigationGraphRoute {
val navigation: String
get() = "navigation"
var navGraph: NavGraph
/**
The .xml name for the nav-graph
*/
val graphName: String
/**
The full package name where the nav-graph is located
*/
val packageName: String
/**
* The navController
*/
var localNavController:NavController
fun addNavGraphDestination(
navController: NavController,
context:Context
): NavGraph {
val navigationId =
context.resources.getIdentifier(graphName,
navigation, packageName)
val newGraph = navController.navInflater.inflate(navigationId)
navController.graph.addDestination(newGraph)
navGraph = newGraph
localNavController = navC

本文介绍了一种在Android应用中实现跨模块导航的方法,避免了模块间的直接依赖。通过定义通用的导航接口并使用资源ID进行导航文件定位,实现了不同模块间的顺畅跳转。
最低0.47元/天 解锁文章
1022





