撰写 NavHost 启动白屏

花未开*_*花未开 14 android android-jetpack-compose

我的应用程序以全局导航启动,但我发现当我设置以下代码时,除非我手动触摸屏幕,否则应用程序在启动后将保持空白。

rememberSystemUiController().setStatusBarColor(
 Color.Transparent,
 darkIcons = true //This sentence must be set
)
Run Code Online (Sandbox Code Playgroud)
fun AppNavigation(
    appNavController:NavHostController = LocalAppNavController.current
) {
    NavHost(
        navController = appNavController,
        startDestination = Screen.Splash.route
    ) {
        composable(route = Screen.Splash.route) {
            SplashScreen()
        }
        composable(route = Screen.HelloScreen.route) {
            HelloScreen()
        }
        composable(route = Screen.HomeScreen.route) {
            val popItem = remember{
                mutableStateOf(NULL_MEDIA_ITEM)
            }
            CompositionLocalProvider(
                LocalHomeNavController provides rememberNavController(),
                LocalNetViewModel provides hiltViewModel(),
                LocalUserViewModel provides hiltViewModel(),
                LocalHomeViewModel provides hiltViewModel(),
                LocalPopWindowItem provides popItem
            ){
                LocalUserViewModel.current.initializeController()
                HomeScreen()
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

upt*_*you 7

这似乎是一个已知问题:https://issuetracker.google.com/issues/227926002

截至评论 - 不同的小米型号受到影响。我的 POCO 也受影响。


小智 6

将您的 AppNavigation 乐趣放入 Scaffold 中:

YourAppTheme {
    Scaffold {
        AppNavigation()
    }
}
Run Code Online (Sandbox Code Playgroud)


cgs*_*ine 6

解决这个问题的黑客方法:

lifecycleScope.launch {
      delay(50)
      window.setBackgroundDrawableResource(android.R.color.transparent)
}
Run Code Online (Sandbox Code Playgroud)

将其添加到 onCreate