Итак, у меня проблема с навигацией AAC. У меня есть несколько фрагментов в одном действии. Я раздуваю опции меню в MainActivity, чтобы каждый фрагмент имел доступ к пункту меню, который открывает настройки. Проблема в том, что каждый раз, когда я нажимаю кнопку «Назад» на фрагменте, он не возвращается к тому фрагменту, который его запустил. Он восходит к исходному фрагменту. Есть ли способ убедиться, что это поведение гарантировано? Спасибо
Как сделать так, чтобы кнопка возврата для фрагмента настроек переходила на запускающий фрагмент с aac
comment
Вы вызывали фрагмент по идентификатору пункта меню?
- person Hussnain Haidar   schedule 13.02.2019
Ответы (2)
Если вы вызываете фрагмент по идентификатору пункта меню, сделайте это в своей деятельности, как показано ниже. Это решит вашу проблему.
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" will not pop out back stack to start destination.
person
Hussnain Haidar
schedule
13.02.2019
Будь я проклят, но это работает!! Спасибо. Позвольте мне отметить это как правильный ответ
- person Beast77; 13.02.2019
я тоже... не верила, что такое бывает.
- person Hussnain Haidar; 13.02.2019
Это работает. Однако я использую Java для реализации компонента навигации AAC. Хотя идея та же. Еще раз спасибо. Вернуться к работе сейчас.
- person Beast77; 13.02.2019
Вы должны использовать FragmentManager и добавить фрагмент в BackStack.
Я рекомендую взглянуть на этот пост: Вернуться к предыдущий фрагмент
person
P. Vera
schedule
13.02.2019
Если он использует Navigation AAC, ему не нужно напрямую касаться FragmentManager.
- person EpicPandaForce; 13.02.2019
Как мне это сделать @EpicPandaForce? Потому что способ, предложенный П. Верой, предназначен для более старого метода простого использования навигационного ящика, а не навигации aac.
- person Beast77; 13.02.2019
Ребята, проверьте ответ, который я отметил как правильный выше. это блестяще
- person Beast77; 13.02.2019