为整个应用设置背景颜色。Android,Jetpack Compose。

7
我需要为整个应用程序设置背景颜色。在xml中,我们在片段或活动中使用android:background标签。
Compose有什么类似的功能?Surface参数和theme colorPalette无法帮助。请寻找解决方案。

请问您能否在问题中提供更多信息? - vivek.kartha
你可以使用lightColorSchemebackground - user924
2个回答

14

您可以将您的应用程序放置在一个带有所需背景的Box内:

setContent {
    YourTheme {
        Box(
            modifier = Modifier
                .fillMaxSize()
                .background(Color.Yellow)
        ) {
            YourApp()
        }
    }
}

这只适用于一个屏幕,而不是所有屏幕吗? - David
@David 如果您正在使用单个活动,并且所有屏幕都在YourApp中定义(例如使用Jetpack Navigation),那么它将为所有屏幕应用颜色。 - Phil Dukhov

2
请将主题文件中的窗口背景颜色设置为您的主题颜色,这将设置整个应用程序的背景,并在应用程序加载时消除白色闪烁(如果应用程序中有彩色背景,则看起来相当奇怪)。 res/values/themes/themes.xml
<style name="Theme.YourThemeName" 
    parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        ...
        <item name="android:windowBackground">@color/purple_700</item>
</style>

1
我使用Splash Activity来消除MainActivity的onCreate()完成之前的闪烁。但是感谢您提供的优美解决方案! - Karych
很高兴它能帮到你!我最近也是通过一种相当困难的方式才发现了它! - Raw Hasan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接