[工具栏上有一个设置按钮,它会打开一个片段,其中包含用于打开更多片段的选项列表。
设置页面有2个选项
用户可以导航到任何页面,并且每个页面的用户都可以看到工具栏
如果单击配置文件->配置文件片段已启动->然后单击工具栏上的设置->设置页面已启动
现在,当我按回时,我被重定向到我不想发生的Profile Fragment。它应该重定向到设置片段之前的最后访问页面,因为配置文件和密码片段是设置片段的子片段
这是我的设置片段流的导航图
<fragment
android:id="@+id/settingsFragment"
android:name="com.mountmeru.view.settings.SettingsFragment"
android:label="fragment_settings"
tools:layout="@layout/fragment_settings">
<action
android:id="@+id/action_settingsFragment_to_profileFragment"
app:destination="@id/profileFragment" />
<action
android:id="@+id/action_settingsFragment_to_resetPasswordFragment"
app:destination="@id/resetPasswordFragment" />
</fragment>
这是我导航到个人资料和密码片段的方式
view.findNavController().navigate(
R.id.action_settingsFragment_to_profileFragment)
view.findNavController().navigate(
R.id.action_settingsFragment_to_resetPasswordFragment)
在ProfileFragment的导航图中,您可以使用:
<fragment
android:id="@+id/profileFragment"
...>
<action
android:id="@+id/action_profileFragment_to_settingsFragment"
app:destination="@+id/settingsFragment"
app:popUpTo="@id/profileFragment"
app:popUpToInclusive="true" />
</fragment>
您可以找到有关popUpTo和pupUpToInclusive here的更多信息。
您也可以在代码中完成此操作(无需更改导航图):
findNavController()
.navigate(R.id.action_profileFragment_to_settingsFragment,
null,
NavOptions.Builder()
.setPopUpTo(R.id.profileFragment,
true).build()
)