Raw*_*san 9 android kotlin android-jetpack-compose
我已使用主要变体颜色作为整个应用程序的背景,但在 UI 最初加载时我仍然看到白色屏幕。有什么办法解决吗?
编辑:我创建了一个新的空项目并应用了@Philip Dukhov 的以下建议。结果还是一样。首先出现白色屏幕,并在 Surface 开始加载之前在屏幕上停留至少两秒钟。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SOIssueReproduceTheme {
Surface(
color = MaterialTheme.colors.primaryVariant,
modifier = Modifier.fillMaxSize()
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
Raw*_*san 10
我已经找到了解决该问题的方法。我们可以通过从主题向窗口添加背景颜色来避免这种白色闪烁,如下所示:
资源/值/主题/themes.xml
<style name="Theme.OfflineCaching"
parent="Theme.MaterialComponents.DayNight.DarkActionBar">
...
<item name="android:windowBackground">@color/purple_700</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在浅色和深色主题的两个主题文件上设置此项。