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

如何在Android Glance小部件中强制启用深色模式?

让Android Glance小部件跟随应用的深色/浅色锁定模式,甚至强制启用深色模式的办法

1. 给Glance小部件指定固定主题

在你的GlanceAppWidget实现类里,重写getGlanceTheme()方法,根据应用内的锁定设置返回对应主题——要是想强制深色模式,直接返回你应用的深色主题ID就行。

示例代码:

class MyGlanceWidget : GlanceAppWidget() {
    override fun getGlanceTheme(): Int {
        // 从应用设置里读取当前锁定的模式
        val isDarkLocked = AppSettings.checkDarkModeLocked()
        return if (isDarkLocked) {
            R.style.Theme_MyApp_Dark // 替换成你自己的深色主题
        } else {
            super.getGlanceTheme() // 未锁定时使用默认逻辑
        }
    }

    override fun Content() {
        // 小部件的UI布局代码
    }
}

2. 在Compose布局里直接强制深色配色

要是只需要小部件的部分内容用深色模式,或者不想修改全局主题,可以在Compose代码里用MaterialTheme包裹,指定深色配色方案:

override fun Content() {
    // 强制整个小部件使用深色配色
    MaterialTheme(colorScheme = darkColorScheme()) {
        Column(
            modifier = GlanceModifier.fillMaxSize(),
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            Text(text = "这是强制深色模式的小部件", color = MaterialTheme.colorScheme.onSurface)
        }
    }
}

注意事项

  • 先确保你的应用已经正确配置了深色主题,不管是在styles.xml里定义,还是用Compose的darkColorScheme构建。
  • 当应用内的模式设置改变时,记得调用GlanceAppWidgetManager.updateAll()刷新小部件,这样新的主题设置才会立即生效。

内容的提问来源于stack exchange,提问作者Armands L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:48:18