圆形导航路径不清楚Android片段导航组件的后退按钮行为

时间:2020-03-04 08:30:00

标签: android android-fragments

好的,所以我有一个应用程序,该应用程序的单个活动带有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" />

0 个答案:

没有答案
相关问题