[英]Navigation Component: Passing bundles to destinations via Bottom Navigation
在我的應用程序中,我有一組用戶可以通過BottomNavigationView
導航到的視圖的主機片段。 這個BottomNavigationView
通過setupWithNavController
連接到我的導航控制器。
我的主機片段收到一個包含一些信息的包,我希望每個片段在被導航到(通過底部導航視圖)作為一個包時被接收。
我目前的解決方案看起來像
mutableListOf<NavDestination>().apply {
addIfNotNull(graph.findNode(R.id.frag1))
addIfNotNull(graph.findNode(R.id.frag2))
addIfNotNull(graph.findNode(R.id.frag3))
forEach {
// args is a safe args object for this host fragment
it.addArgument("argName", NavArgument.Builder().setDefaultValue(args.argName).build())
}
}
雖然這是有效的,但它不能很好地擴展,因為我手動為每個目標添加參數。 由於我沒有手動導航到每個目的地,而是由BottomNavigationView
完成,我不知道如何手動添加此捆綁包。
navController.addOnDestinationChangedListener { controller, dest, args ->
when (dest.label) {
"YOUR_LABEL_HERE" -> {
val arg01 = NavArgument.Builder().setDefaultValue("SOME VALUE").build()
val arg02 = NavArgument.Builder().setDefaultValue("SOME OTHER VALUE").build()
dest.addArgument("KEY_NAME", arg01)
dest.addArgument("OTHER_KEY_NAME", arg02)
}
}
}
嘗試這個。 它應該工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.