Настройка вида нижней навигации с помощью 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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