如何确保设置片段的后退按钮通过AAC转到启动片段

时间:2019-02-13 12:02:10

标签: android android-architecture-components android-architecture-navigation

所以我在AAC导航方面遇到问题。我在一项活动中有多个片段。我在MainActivity中膨胀菜单选项,以便每个片段都可以访问打开设置的菜单项。问题在于,每当我按下片段上的“后退”按钮时,它都不会返回到启动它的片段。它回到原始片段。 有没有办法确保这种行为得到保证?谢谢

2 个答案:

答案 0 :(得分:1)

如果要通过菜单项ID调用片段,请在如下所示的活动中进行操作。它将解决您的问题。

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”不会弹出堆栈以启动目标。

答案 1 :(得分:0)

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

我建议您看一下这篇文章:Go back to the previous fragment