如果当前片段未知,如何导航到片段?
How to navigate to a fragment if current fragment is unknown?
我有一些非最佳的应用程序架构,需要从一个片段导航到另一个片段,但不清楚当前目的地和到达点是什么。
简单的方法是使用这样的东西:
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)
您可以使用片段 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)
我有一些非最佳的应用程序架构,需要从一个片段导航到另一个片段,但不清楚当前目的地和到达点是什么。 简单的方法是使用这样的东西:
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)
您可以使用片段 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)