![](/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.