График навигации Android удаляет большую часть стека при обратном нажатииAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 График навигации Android удаляет большую часть стека при обратном нажатии

Сообщение Anonymous »

Я начал использовать библиотеку компонентов навигации и создал граф для навигации между различными фрагментами. Моя базовая настройка — BottomNavigationView с двумя фрагментами (A и B). Фрагмент B может идти глубже внутри графа к фрагменту C, а фрагмент C переходит к фрагменту D. На этом этапе все работает, и обратный стек идет от D -> C -> B.
Моя проблема — это фрагмент Z, доступный из меню панели инструментов, определенного для действия и используемого каждым фрагментом. Мне нужен путь от A -> B -> C -> D -> Z, и, нажав кнопку «Назад», я хочу вернуться на один шаг назад к фрагменту D. Но я перехожу к началу моего графика, который является фрагментом A. .
Фрагмент Z не использует никаких действий. Компонент навигации обнаруживает один и тот же фрагмент.id внутри графа навигации и меню.xml и выполняет навигацию за меня. Поэтому я не могу определить какую-то магию с несколькими обратными стеками.
navigation.xml


















toolbar_menu.xml





bottom_navigation.xml







MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView( R.layout.activity_main )
val toolbar: MaterialToolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
val navView: BottomNavigationView = findViewById( R.id.bottomNavigation )
navView.setupWithNavController( navController )
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_toolbar, menu)
return super.onCreateOptionsMenu(menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
val navController = findNavController(R.id.nav_host_fragment)
return item.onNavDestinationSelected(navController) || super.onOptionsItemSelected(item)
}
}


Подробнее здесь: https://stackoverflow.com/questions/789 ... from-stack
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»