首页 > 解决方案 > 如何确保设置片段的后退按钮使用 aac 转到启动片段

问题描述

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

标签: androidandroid-architecture-componentsandroid-architecture-navigation

解决方案


如果您通过菜单项 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" 不会弹出回栈以开始目的地。


推荐阅读