原只需设置资源就可使用
navController.setGraph(graph)//graph为resId
现有需要动态修改startDestination,经实践需要在setGraph之前修改掉startDestination,如下操作即可
private lateinit var appBarConfiguration: AppBarConfiguration
val navController by lazy { findNavController(R.id.xxx) }
...
//手动新建navGraph,再设置即可
val navGraph = navController.navInflater.inflate(graph)//@NavigationRes graph: Int
if (startDestination != 0) { // startDestination 为需要替换的id
navGraph.startDestination = startDestination
}
navController.graph = navGraph
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
这把没有参照 -_-