You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Jetpack Compose Preview夜间模式预览不显示深色背景

问题根因

夜间模式预览配置的uiMode常量取值错误。当前使用的Configuration.UI_MODE_NIGHT_UNDEFINED是未指定夜间模式状态的枚举值,不会主动触发深色模式渲染,因此预览无法正常展示深色背景。

修复方法

将深色预览项的uiMode参数替换为正确的夜间模式常量Configuration.UI_MODE_NIGHT_YES即可,修正后的完整代码如下:

@Preview(name = "Light Mode")
@Preview(
    name = "Dark Mode",
    uiMode = Configuration.UI_MODE_NIGHT_YES,
    showBackground = true
)
@Preview(name = "Full Preview", showSystemUi = true)
@Composable
fun DefaultPreview() {
    ComposeTutorialTheme {
        MessageCard(Message("Roman", "message body"))
    }
}
注意事项
  • uiMode参数常用的夜间模式相关常量取值对应效果如下:
    • Configuration.UI_MODE_NIGHT_YES:强制预览使用深色模式
    • Configuration.UI_MODE_NIGHT_NO:强制预览使用浅色模式
    • Configuration.UI_MODE_NIGHT_UNDEFINED:不主动指定模式,跟随IDE预览的默认配置
  • 需确认项目中自定义的ComposeTutorialTheme已正确适配系统深色模式配置,可根据isSystemInDarkTheme()的返回值切换对应深色配色方案,否则即使uiMode配置正确也无法展示深色效果。
  • 修改参数后如果预览未自动更新,点击预览面板顶部的刷新按钮重新渲染即可生效。

内容的提问来源于stack exchange,提问作者rofrol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:39:12