Настройка вида нижней навигации с помощью navController приводит к очистке модели представления при обратном нажатииAndroid

Форум для тех, кто программирует под Android
Anonymous
Настройка вида нижней навигации с помощью navController приводит к очистке модели представления при обратном нажатии

Сообщение Anonymous »

Моя текущая версия навигации:

Код: Выделить всё

    implementation("androidx.navigation:navigation-fragment-ktx:2.8.0")
implementation("androidx.navigation:navigation-ui-ktx:2.8.0")
Внутри фрагмента у меня есть FragmentContainerView и BottomNavigationView. Я настроил их с помощью navController следующим образом:

Код: Выделить всё

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

val navView: BottomNavigationView = binding.bottomNav
val navHostFragment = (childFragmentManager.findFragmentById(
R.id.navHostFragment
) as NavHostFragment)
navView.setupWithNavController(navController)
}
Каждый раз, когда я перемещаюсь по вкладкам (например, домой -> профиль -> дом), ProfileViewModel сохраняется (то есть его onCleared не вызывается). Но если я нажму кнопку «Назад», когда выбрана вкладка профиль, будет вызван onCleared ProfileViewModel.
Я даже пытался добавить OnBackPressedCallback, чтобы переопределить любое обратное нажатие, но его handleOnBackPressed не вызывается:

Код: Выделить всё

requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, onBackPressedCallback)
Как заставить navController прекратить очистку модели представления при нажатии кнопки «Назад»?


Подробнее здесь: https://stackoverflow.com/questions/791 ... d-when-bac

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