XML-заставка Android

Я пытаюсь реализовать заставку с помощью Splash Screen Api для приложения Android с компонентом навигации. Я столкнулся с проблемой, когда мне нужно сохранить заставку для некоторого состояния из модели представления фрагмента, и в то же время приложение выходит из строя, если я вызываю installSplashScreen не в MainActivity. Я не знаю, как это решить, кажется, мне нужно добавить собственный фрагмент фрагмента без API. Есть идеи?

installSplashScreen().apply {
     setKeepOnScreenCondition {
         homeViewModel.homeCollectionState.value !is HomeCollectionState.Loading &&
            homeViewModel.homeCollectionState.value !is HomeCollectionState.Idle
         }
}
1
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете прикрепить ViewModel к действию и фрагменту.

Вам необходимо ограничить его действием, чтобы убедиться, что вы получаете тот же экземпляр.

В вашей деятельности:

val viewModel = ViewModelProvider(this).get(HomeViewModel::class.java)

В вашем фрагменте:

val viewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java)

Другие вопросы по теме