如何确保设置片段的后退按钮使用 aac 进入启动片段

How to make sure that back button for settings fragment goes to the launching fragment with aac

所以我对 AAC 导航有疑问。我在一个 activity 中有多个片段。我在 MainActivity 中扩充菜单选项,以便每个片段都可以访问打开设置的菜单项。问题是每次我按下片段上的后退按钮时,它都不会返回到启动它的片段。它可以追溯到原始片段。 有没有办法确保这种行为得到保证?谢谢

您应该使用 FragmentManager 并将片段添加到 BackStack。

我建议看看这个 post:Go back to the previous fragment

如果您通过菜单项 ID 调用片段,那么在您的 activity 中执行此操作,例如 below.It 将解决您的问题。

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return NavigationUI.onNavDestinationSelected(item,navController) || super.onOptionsItemSelected(item)
}

你的菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:app="http://schemas.android.com/apk/res-auto">
<item
        android:id="@+id/settingsFragment"
        android:title="Settings"
        android:menuCategory="secondary"
        app:showAsAction="never" />

MenuCategory = "secondary" 不会弹出返回堆栈到起始目标。