我想为当前的导航图注入新的目的地。
我注意到NavGraph
有一种方法void addDestination(@NonNull NavDestination node)
,但是我找不到合适的方法来创建NavDestination
并使用navController.navigate(R.id.new_dest_id)
导航到它。
答案 0 :(得分:1)
您是否尝试过在Navigation()中传递新创建的Destination的ID,例如navigate(myDes.getId())
答案 1 :(得分:0)
我有两种工作方式:
navController.graph.addDestination(ActivityNavigator(this).createDestination().apply {
id = R.id.new_dest
setComponentName(ComponentName(context, NewActivity::class.java))
// or setIntent
})
或这个
navController.graph.addDestination(
navController.navigatorProvider.getNavigator(ActivityNavigator::class.java)
.createDestination().apply {
id = R.id.new_dest
setComponentName(ComponentName(context, NewActivity::class.java))
}
)
还有一个DSL构建器ActivityNavigatorDestinationBuilder
。
片段相似。将ActivityNavigator
更改为FragmentNavigator
,并使用不同的设置器。
当我在一个图形中添加目标并尝试导航到另一图形中的新目标时,我也犯了一个错误。当然那是行不通的。