好的,所以我有一个应用程序,该应用程序的单个活动带有navhost
,可以使用基于片段的导航。大多数方法都可以正常工作,但是我有一种情况使我感到困惑,因为我似乎不太了解某些事情。
有关更多上下文,该应用程序专注于收集传感器数据。用户可以启动一个“收集”,并在其中进行多次记录传感器数据。即用户进入收集模式,然后开始记录,标记记录的数据,返回收集模式,然后可以开始另一次记录,依此类推。因此导航看起来像这样
Home --Start collection--> Collection --Start recording--> Record
| |
Save data-- Labelling <--Finish recording
希望这里可以看到录制周期。到标签为止,这是所有从片段到片段的简单导航操作。 Save data
过渡是一种导航操作,没有目标,该目标使用popUpTo
Collection
片段来完成此记录周期。所有这些工作都按预期进行,但是现在我对手机后退按钮的行为方式感到困惑。
如果我向前导航到Labelling
片段,然后按“后退”按钮,则会得到预期的结果,回到所有先前的片段,直至Home
片段。这正是我想要的。如果我完成了录制周期并因此执行了popUpTo
操作,则事情的表现会异常。我最后遇到了Collection
片段,但是按“后退”按钮没有任何作用。我希望返回到Home
片段,但是此时看来后栈完全是空的。
现在,我的问题是:
这是我的导航图中Save data
过渡的动作定义:
<action android:id="@+id/action_labelling_to_collection" app:popUpTo="@id/collectionFragment" />