繁体   English   中英

Android 导航组件:如何以编程方式添加目的地?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM