如果当前片段未知,如何导航到片段?

时间:2021-03-17 13:38:23

标签: android android-fragments navigation android-jetpack

我有一些非最佳的应用架构,需要从一个片段导航到另一个片段,但不清楚当前目的地和到达的目的地是什么。 简单的方法是使用这样的东西:

if (findNavController().currentDestination?.id == R.id.fragmentA) 
    findNavController().navigate (R.id.action_fragmentA_to_fragmentB)

但是,如果我只知道 fragmentB 的名称/ID,如何动态创建导航路径?类似的东西

fun navigate(arriveFragment) = 
    findNavController().navigate (R.id.action_$currentFragment_to_$arriveFragment)

1 个答案:

答案 0 :(得分:2)

您可以使用片段 ID 进行导航

findNavController().navigate(R.id.fragmentB)

navigate() 也接受 navArguments 和 navOptions

val args = bundleOf(
    "key" to "value"
)
val options = navOptions {
    popUpTo(R.id.fragmentA)
}
findNavController.navigate(R.id.fragmentB, args, options)