我已为Android Navigation组件创建了一个nav_graph.xml,并添加了四个不同视图的碎片。现在添加了BottomNavigationView和菜单项,使用nav_graph中的fragment ids,并将这些ids提供给底部导航栏中的每个菜单项。它可以工作并显示所选底部导航栏菜单项对应的特定碎片。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/nav_fragmentA"
android:title="@string/menu_search"
android:icon="@drawable/ic_search" />
<item android:id="@+id/nav_fragmentB"
android:title="@string/menu_settings"
android:icon="@drawable/ic_add" />
<item android:id="@+id/nav_fragmentC"
android:title="@string/menu_navigation"
android:icon="@drawable/ic_action_navigation_menu" />
<item android:id="@+id/nav_fragmentD"
android:title="@string/menu_navigation"
android:icon="@drawable/ic_action_navigation_menu" />
</menu>
问题: 当用户多次按任何菜单项并按返回按钮时,它会通过整个后退堆栈导航,而不是转到第一个菜单项并退出应用程序。
例如
四个底部菜单项:A B C D 用户导航:A->C->B->D->B->C-A->D 返回按钮行为:D->A->C->B->D-B->C->A->Exit(与用户导航相反)
想要实现以下行为:
用户通过菜单项导航:A->C->B->D->B->C-A->D(任意随机导航) 后退按钮:D->A->Exit(从任何选择的项目到第一个项目,然后退出)