Я работаю над приложением для Android TV. У меня есть фрагмент (основной фрагмент), а внутри фрагмента есть боковое меню, каждый пункт меню создает новый фрагмент (фрагмент меню).У меня есть Viewmodel и в ViewModel у меня есть конфигурационные данные, которые я загружаю, когда я создаю основной фрагмент.А данные фрагмента меню основаны на данных, которые я получаю от вызовов API и от данных конфигурации
Я создал один экземпляр модели представления с жизненным циклом действия.Но проблема в том, что, когда я перемещаюсь от одного фрагмента к другому, например, из 1-2 фрагментов, и когда 1 фрагмент уже загружен, данные liveata не пусты и переходят ко 2-му фрагменту перед извлечением данных второго фрагмента, которые он наблюдает / отображает liveataиз первого фрагмента, а затем его собственного, после того, как он получает свои данные. Я думаю, что у каждого фрагмента должен быть свой экземпляр, но мне также нужны данные, которые должны быть разделены (конфиг) между каждым экземпляром viewmodel?Как я могу это сделать?
private val viewModel: HomeViewModel by lazyViewModelActivityScope()
viewModel.fetch()
viewModel.configData.observe(viewLifecycleOwner, Observer { it ->
loadData(it)
})
это внутри MenuFragment
private val viewModel: HomeViewModel by lazyViewModelActivityScope()
viewModel.fetchMenuPage(menuItem)
viewModel.carouselsWithAssetsData.observe(viewLifecycleOwner, Observer { carouselWithAssets ->
carouselWithAssets.forEach { carouselWithAsset ->
mRowsAdapter.add(createCardRow(carouselWithAsset))
}
})