第二次使用jetpack打开应用程序时的白色屏幕仅适用于小米机型



打开或旋转应用程序时会出现白色屏幕。这个白色屏幕永远不会消失,直到我在白色屏幕上点击/滑动并显示滑动数据
这种情况只发生在MI型号的手机中,我也在三星手机中尝试过相同的代码,一切都在那里工作。

主活动代码

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyNavGraph()
}
}
}

NavHost用于在可组合之间路由

@Composable
fun MyNavGraph(
modifier: Modifier = Modifier,
navController: NavHostController = rememberNavController(),
startDestination: String = HOME_ROUTE,
route: String = ROOT_ROUTE
) {
NavHost(
modifier = modifier,
navController = navController,
startDestination = startDestination,
route = route
) {
homeNavGraph(navController = navController)
}
}

导航图包含可组合屏幕

fun NavGraphBuilder.homeNavGraph(
navController: NavHostController
) {
navigation(
startDestination = Screen.HomeScreen.route,
route = HOME_ROUTE
) {
composable(
Screen.HomeScreen.route
) {
val homeBackStackEntry = remember { navController.getBackStackEntry(HOME_ROUTE) }
// Get the same instance every time
val homeViewModel: HomeViewModel = hiltViewModel(homeBackStackEntry)
HomeScreen(
navController = navController,
viewModel = homeViewModel
)
}
composable(
Screen.RingtonesScreen.route
) {
val homeBackStackEntry = remember { navController.getBackStackEntry(HOME_ROUTE) }
// Get the same instance every time
val ringtoneViewModel: RingtoneViewModel = hiltViewModel(homeBackStackEntry)
RingtoneScreen(
navController = navController,
ringtoneViewModel
)
}
}
}

我也遇到了类似的问题。如果轻应用程序的主题已经确定,我将智能手机旋转到不同的方向,然后将其旋转回来,我只看到一个白色屏幕。但一旦触摸,屏幕就会显示出来。

我想这只是小米设备在MIUI上的问题:

compose NavHost启动白屏幕

https://issuetracker.google.com/issues/227926002

在NavHost之前添加ScaffoldDefaults.contentWindowInsets对我有效:

MyAppTheme {
ScaffoldDefaults.contentWindowInsets // Fixes blank screen for Xiaomi devices
NavHost(...){
...
}
}

POCO X3 NFC,安卓12,MIUI Global 14.0.2

最新更新