簡體   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