我的碎片流就像这样
Main -> A -> B -> C ->A
在片段C中,它具有一个提交按钮,该按钮将返回到A。当我按A中的返回按钮时,我希望它回到Main。但是它返回片段c。
在片段C中,我使用此
findNavController().navigate(R.id.action_c_to_a)
nav_graph.xml
<fragment
android:id="@+id/fragmentC"
android:name="xxx"
android:label="xxx">
<action
app:launchSingleTop="true"
app:popUpTo="@+id/fragmentA"
app:popUpToInclusive="true"
android:id="@+id/action_c_to_a"
app:destination="@id/fragmentA" />
</fragment>
为什么不弹出片段a?您只需致电findNavController().popBackStack(R.id.fragmentA, false)
而不是通过操作导航。
尝试通过删除/杀死片段的片段来查看我的完整解决方案。
导航组件设置过渡动画编程
您可以覆盖返回按钮行为来执行此操作。提供自定义后背导航
这个想法是在不设置app:destination
的情况下设置app:popUpTo
。实际上,设置app:destination
将创建一个片段并将其添加到背景中,这不是您想要的。
您可以删除:
app:destination="@id/fragmentA"
如果有:
app:popUpTo="@+id/fragmentA"
它确实会弹出背包,直到 fragmenta