Отключение текущей вкладки в нижнем навигационном контроллере

Я использую Jetpack Navigation для управления нижним навигационным контроллером. Он отлично работает; однако я ищу способ улучшить UX.

Можно ли отключить вкладку, на которую в данный момент перешел пользователь?

Я могу «спамить» текущую вкладку в нижней навигации, которая без необходимости перезагружает данные и пользовательский интерфейс. Если это поведение (повторное нажатие на текущую вкладку) предназначено, есть ли способ сохранить состояние фрагмента, чтобы при переходе от него и к нему он не воссоздавался?

Как я обрабатываю нижнюю навигацию:

navController = NavHostFragment.findNavController(navigation_host_fragment)
NavigationUI.setupWithNavController(bottom_navigation_view, navController)
2
0
446
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно Эта проблема:

Feel free to set a OnNavigationItemReselectedListener, which takes precedence over the OnNavigationItemSelectedListener set by NavigationUI: setOnNavigationItemReselectedListener

bottom_navigation_view.setOnNavigationItemReselectedListener {
  // Do nothing
}

Удивительно, одна строка кода и все работает КАК ОЖИДАЕТСЯ. О, я люблю андроид.

Andrew 16.12.2020 16:08

Другие вопросы по теме