Я создал nav_graph. xml для android компонента навигации и добавил четыре фрагмента для четырех разных видов. Теперь добавлены BottomNavigationView и пункты меню, использованы идентификаторы фрагментов из nav_graph и предоставлены эти идентификаторы для каждого пункта меню для нижней навигации. Он работает и показывает конкретный фрагмент для выбранного элемента меню в виде навигации снизу.
<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>
Проблема: когда пользователь нажимает какие-либо пункты меню несколько раз и нажимает кнопку возврата. Он перемещается по всему заднему стеку, а скорее идет к первому пункту меню и выходит из приложения.
Например
- Четыре нижних пункта меню: AB C D
- Навигация пользователя: A -> C -> B-> D-> B -> C -A-> D
- Поведение кнопки возврата: D-> A -> C -> B -> DB -> C -> A-> Exit (обратная навигация пользователя)
Хотите добиться поведения, как показано ниже:
- Пользователь перемещается по меню пункты: A -> C -> B-> D-> B -> C -A-> D (произвольная навигация)
- Кнопка возврата: D-> A-> Выход (с любой выбранный элемент в первую очередь, а затем выйти)