繁体   English   中英

如何从 BackStack 导航到现有的 Fragment?

[英]How to navigate to existing Fragment from BackStack?

我有一堆片段使用单个活动作为主机。

我的碎片是这样排列的,

Frag1 ->(按下一步)-> Frag2 ->(按下一步)-> Frag3 ->(按下一步)-> Frag4

在 Frag1 中,我有另一个按钮可以直接导航到 Frag4。

在 Frag4 中,如果我单击返回按钮,它当前将返回到 Frag1。 但在这里我希望它导航到 Frag3。

如果我正确地得到了你想要的,你可以在你的主机 xml 右侧的 Pop Behavior 中使用 popUpTo,你可以在其中连接片段并导航片段并将 popUpTo 设置为你想要的片段

或者

您可以使用此代码说明按下后退按钮时 go 的位置:

注意:您需要将它们粘贴到片段 class

requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) {
            add your navigation destonation or do whatever you want 
        }

你也有另一个选择。

您可以使用:

view?.findNavController().popBackStack()

最后但并非最不重要的是,如果您处于活动状态 class 我的意思不是片段,您可以使用它:

override fun onBackPressed() {
do what you need
if you leave this fun empty, back button would not work any more        
}

我认为第二个选择是你的合适

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM