我现在正处于signupfragment,需要进入loginfragment,这是我以前的片段,但无法正常工作
git config --global -l
答案 0 :(得分:1)
popBackStack(R.id.signupfragment,false)
的第二个参数是popUpToInclusive
:
popUpToInclusive
:布尔值:是否还应该弹出给定的目的地。
如果您使用popUpToInclusive
中的false
,则表示“将所有内容弹出到R.id.signupfragment
,但不是R.id.signupfragment
。
因此,如果您在R.id.signupfragment
,它将正确弹出任何内容(并返回false)。您想要1)对true
使用popUpToInclusive
或2)使用不带任何参数的popBackStack()
版本,因为这等效于仅弹出当前目的地后堆栈:
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) {
Log.e("BackPressed","Onbackpressed")
findNavController().popBackStack()
}
当然,导航已经已将后退按钮设置为在您按下后退按钮时呼叫popBackStack()
,因此,除了进行额外的记录外,您的通话也完全没有必要。
答案 1 :(得分:0)
另一种轻松实现此目的的方法是放回测试按钮并对其进行编码。
value
答案 2 :(得分:0)
我不知道它的好答案,但是可以正常工作
findNavController().popBackStack()
findNavController().popBackStack()
findNavController().navigate(R.id.loginFragment)