gpt4 book ai didi

android - 有没有办法导航到目的地并在 NavigationManager 中将另一个添加到 backtstack?

转载 作者:行者123 更新时间:2023-11-29 18:30:53 30 4
gpt4 key购买 nike

大家好,我是 android NavigationManager 的新手。

考虑在 nav_graph 中连接的 fragment A、B 和 C,如图所示。 scheme

基本上我想要实现的是从 fragment A 直接导航到 C。但是当单击后退按钮时,我希望它的行为就像我在 fragment B 中的第一个一样。

所以 A->C,在后退按钮上:C->B->A

有什么方法可以将 fragment B 添加到 backstack 而无需使用 NavigationManager 实际显示它?

最佳答案

所以看来我在阅读文档时应该更加小心。我错过了 this site .

有自定义返回行为的机制。我所需要做的就是将这段代码添加到 fragment C 类中:

//use onResume if you want to handle orientation change
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val callback = requireActivity().onBackPressedDispatcher.addCallback(this, object :
OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
val options = NavOptions.Builder()
.setPopUpTo(R.id.fragmentC, true)
.build()

navController.navigate(R.id.fragmentB, options)
}
})
}

我的心态一直都是错误的。我试图在启动 C 时将 B 添加到后退堆栈。我必须在按下后退按钮的 fragment C 中做的是前进到 B 并从后退堆栈中删除 C。

关于android - 有没有办法导航到目的地并在 NavigationManager 中将另一个添加到 backtstack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56340294/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com