如何解决Android 导航 popBackStack 与 findNavController().popBackStack(R.id.f1, false) 有不同的行为
我使用带有 safeArgs 的 Android 导航。
我有带有 TabLayout 的片段 1 F1。 我有一个带有按钮的片段 2 F2,它应该导航到片段 F1 并清除返回堆栈历史记录。
如果我在后退按钮上使用没有 navigation(action)
的简单代码,它运行良好,甚至可以转到我想要的最后一个选定的选项卡。
btnBack.setonClickListener { v: View ->
v.findNavController().popBackStack(R.id.f1,false)
}
如果我定义了动作并按照我期望的方式使用它来模拟上面的行为,它的工作方式略有不同。
<action
android:id="@+id/action_F2_to_F1"
app:destination="@id/f1"
app:popUpTo="@id/f1"
app:popUpToInclusive="false" />
btnBack.setonClickListener { v: View ->
val action = MyDirections.action_F2_to_F1()
v.findNavController().navigate(action)
}
应用导航到 F1,但它也忘记了最后选择的选项卡。我知道我可以在 viewmodel 中保留选定的选项卡,但坦率地说,这真的很痛苦,而且要让它工作。
关于如何正确处理导航操作的任何建议?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。