Я пытаюсь реализовать заставку с помощью Splash Screen Api для приложения Android с компонентом навигации. Я столкнулся с проблемой, когда мне нужно сохранить заставку для некоторого состояния из модели представления фрагмента, и в то же время приложение выходит из строя, если я вызываю installSplashScreen не в MainActivity. Я не знаю, как это решить, кажется, мне нужно добавить собственный фрагмент фрагмента без API. Есть идеи?
installSplashScreen().apply {
setKeepOnScreenCondition {
homeViewModel.homeCollectionState.value !is HomeCollectionState.Loading &&
homeViewModel.homeCollectionState.value !is HomeCollectionState.Idle
}
}
Вы можете прикрепить ViewModel к действию и фрагменту.
Вам необходимо ограничить его действием, чтобы убедиться, что вы получаете тот же экземпляр.
В вашей деятельности:
val viewModel = ViewModelProvider(this).get(HomeViewModel::class.java)
В вашем фрагменте:
val viewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java)