Я использую BottomNavigationView
, чтобы показать несколько фрагментов из моего графика навигации.
Нижняя навигационная панель настроена так в моем MainActivity
:
val navController = findNavController(R.id.mainNavigationFragment)
setupActionBarWithNavController(navController)
bottomNavigationView.setupWithNavController(navController)
Каждый фрагмент имеет свой собственный FragmentScoped viewmodel
для обслуживания его содержимого.
Перебирая каждую вкладку в bottomnavview
, я вижу воссозданный фрагмент, который, в свою очередь, вызывает создание нового экземпляра модели представления для этого фрагмента. , Что приводит к вызовам api fre sh для повторного извлечения данных.
Как мне избежать повторного получения этих данных?
Я знаю, что могу сделать следующее:
Использовать модель представления Activity для размещения всех эти данные, но это просто сделает одну модель представления, содержащую данные для всех моих фрагментов.
Кэшируйте ответ API, так что воссоздание фрагмента будет просто получать данные из кеша, вместо того, чтобы делать fre sh сетевой вызов
Существует ли какая-либо платформа, предоставленная лучшая практика, которой я могу следовать, чтобы обойти эту повторную загрузку данных каждый раз?
Спасибо