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

Kotlin应用在MIUI系统中单独关闭深色模式失效问题求助

解决MIUI 12下应用无法单独关闭深色模式的问题

1. 添加MIUI专属主题禁用属性

MIUI的深色模式适配有私有逻辑,仅依赖Android原生配置可能被覆盖,需补充MIUI专属设置:

  • 在res/values/themes.xml的根标签中引入MIUI命名空间:
    xmlns:miui="http://schemas.android.com/apk/res-auto"
    
  • 在主题样式里同时声明原生和MIUI的禁用强制深色属性:
    <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
    <item name="miui:forceDarkAllowed">false</item>
    

2. 移除android:configChanges="uiMode"配置

之前添加的该配置会阻止系统在UI模式变化时重启Activity,导致主题无法及时更新。建议删除Activity标签中的此配置,让系统自动重启Activity以应用新的主题设置。

3. 代码手动控制主题(兜底方案)

若上述方法无效,可在Activity启动阶段手动读取系统UI模式并设置对应主题:

override fun onCreate(savedInstanceState: Bundle?) {
    val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
    // 替换为你自己的浅色/深色主题
    if (currentNightMode == Configuration.UI_MODE_NIGHT_NO) {
        setTheme(R.style.Theme_YourApp_Light)
    } else {
        setTheme(R.style.Theme_YourApp_Dark)
    }
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
}

4. 验证系统设置与缓存

确认系统设置中该应用的「深色模式」已设为「浅色」或「跟随系统」,部分MIUI版本存在设置缓存,可尝试重启应用或设备后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:05:04