如何使用 Android 中的导航控制器组件返回到根片段或层次结构的顶部?
how to back to the root fragment or top of hierarchy using Navigation Controller Component in Android?
假设我在底部导航视图中有 4 个选项卡。如果用户选择这些选项卡之一,则用户将从一个片段导航到其他片段。
假设用户选择第一个选项卡(主页),然后从以下位置导航:
fragmentA(主页)-> fragmentB -> fragmentC -> fragmentD -> fragmentE
我想使用 Android 中的导航控制器组件以编程方式从 fragmentE 返回到 fragmentA。怎么做?
我试过使用这段代码,但它只是返回到 fragmentD(形成 fragmentE)
btn.setOnClickListener{
Navigation.findNavController(view).navigateUp()
}
NavController
的 popBackStack(int, boolean)
弹出回特定目标 ID:
Attempts to pop the controller's back stack back to a specific destination.
因此你可以使用
Navigation.findNavController(view).popBackStack(R.id.fragmentA, false)
在不弹出 fragmentA 本身的情况下弹回 fragmentA(这就是 inclusive
标志为 false
的原因)。
假设我在底部导航视图中有 4 个选项卡。如果用户选择这些选项卡之一,则用户将从一个片段导航到其他片段。
假设用户选择第一个选项卡(主页),然后从以下位置导航:
fragmentA(主页)-> fragmentB -> fragmentC -> fragmentD -> fragmentE
我想使用 Android 中的导航控制器组件以编程方式从 fragmentE 返回到 fragmentA。怎么做?
我试过使用这段代码,但它只是返回到 fragmentD(形成 fragmentE)
btn.setOnClickListener{
Navigation.findNavController(view).navigateUp()
}
NavController
的 popBackStack(int, boolean)
弹出回特定目标 ID:
Attempts to pop the controller's back stack back to a specific destination.
因此你可以使用
Navigation.findNavController(view).popBackStack(R.id.fragmentA, false)
在不弹出 fragmentA 本身的情况下弹回 fragmentA(这就是 inclusive
标志为 false
的原因)。