на его месте?
Насколько помню, в модифаере есть колбек в котором можно получить состояние прорисовки
В общем, решил немного иначе. Просто показываю сплешскрин до момента успешной композиции нужного мне состояния. Криво, но работает. @OptIn(ExperimentalCoroutinesApi::class, kotlinx.coroutines.FlowPreview::class) private fun hideSplashScreenWhenGameLoaded(splashScreen: SplashScreen, game: GameComponent) { var keepSplashScreen by mutableStateOf(true) splashScreen.setKeepOnScreenCondition { keepSplashScreen } lifecycleScope.launch { flow { while (keepSplashScreen) { if (game.models.value !is Game.Model.Ready) { emit(true) } else { emit(Recomposer.runningRecomposers.value.any { it.hasPendingWork }) } delay(100) } } .distinctUntilChanged() .debounce(300) .filter { hasRunningCompositions -> !hasRunningCompositions } .collect { keepSplashScreen = false } } }
Обсуждают сегодня