![](/img/trans.png)
[英]Android Navigation Component: Start at a different destination than home, programmatically?
[英]Android Navigation Component: How to add a destination programmatically?
我想为当前的导航图注入一个新的目的地。
我注意到NavGraph
有一个方法void addDestination(@NonNull NavDestination node)
但我找不到创建NavDestination
并使用navController.navigate(R.id.new_dest_id)
导航到它的正确方法。
我有两种工作方式:
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
并使用不同的 setter。
当我在一个图表中添加一个目的地并试图导航到另一个图表中的新目的地时,我也犯了一个错误。 当然,那永远不会奏效。
您是否尝试在导航()中传递新创建的目的地的 ID,例如navigate(myDes.getId())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.