V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HMSQQbA
V2EX  ›  Android

MIUI 12 适配深色模式问题

  •  
  •   HMSQQbA · 2021-05-05 21:03:23 +08:00 · 6523 次点击
    这是一个创建于 1058 天前的主题,其中的信息可能已经有所发展或是发生改变。
    MIUI 12 的深色模式中有个应用列表,可以在全局深色模式开启的情况下,允许某些应用不使用深色模式。

    但某些应用在取消勾选的情况下,依然跟随深色模式。比如:钉钉

    试验了一下,用 Android Studio 新建项目,选择任意模板,直接构建并在小米 8 MIUI 12 上运行,就会出现上述问题。

    默认继承的主题是 Theme.MaterialComponents.DayNight.DarkActionBar

    请问一下这方面应用如何适配?

    很多流行应用都没有这个问题,如京东,支付宝等,所以一定有办法。
    14 条回复    2021-05-07 14:58:54 +08:00
    RikkaW
        1
    RikkaW  
       2021-05-05 21:47:07 +08:00 via Android
    没看懂问题在讲什么

    但是如果是说自己正确设置了主题却还是被破米米把颜色给改掉,在自己的主题加上 android:forceDarkAllowed false 就可以不被改(

    参考 https://github.com/RikkaApps/RikkaX/commit/3a0ab86f81fc8a8985d4b2892435ad449e92b9c3
    HMSQQbA
        2
    HMSQQbA  
    OP
       2021-05-05 21:53:51 +08:00
    @RikkaW 谢谢大佬回复!但这样似乎会完全禁用深色模式。

    主贴说的是让应用可以使用 MIUI 的“全局深色例外模式”,即在启用深色模式的情况下允许个别应用保留浅色模式。

    这应该是 MIUI 的特色功能,原版 Android 10 没有。
    maizero
        3
    maizero  
       2021-05-05 22:00:46 +08:00
    钉钉本身可以设置的
    mxalbert1996
        4
    mxalbert1996  
       2021-05-05 23:24:02 +08:00 via Android
    京东和支付宝有深色模式了?
    datou
        5
    datou  
       2021-05-05 23:30:42 +08:00
    @mxalbert1996 国产系统可以强制反色的方式实现"dark mode"

    比如 miui
    mxalbert1996
        6
    mxalbert1996  
       2021-05-05 23:55:19 +08:00 via Android
    @datou 那我理解这个开关只是控制是否对特定应用开启强制暗黑模式(对不提供暗黑主题的应用进行强制反色),如果应用本身已经提供暗黑主题则不受影响。
    dingwen07
        7
    dingwen07  
       2021-05-06 02:21:57 +08:00   ❤️ 3
    这个是 MIUI 对深色的优化开关,部分无良 APP 比如网易云淘宝推特不适配安卓的深色自动切换,MIUI 就通过反色优化,但是如果出了 bug 导致应用显示异常就得在这里关掉。这个选项不会让已经适配了自动切深色模式的 app 停止根据系统设置切换。
    tanghongkai
        8
    tanghongkai  
       2021-05-06 06:16:41 +08:00 via Android
    钉钉自己有深色模式,他检测到系统开了深色模式自己处理的
    clf
        9
    clf  
       2021-05-06 10:09:09 +08:00
    前段时间酷安上看到了一堆 App 的更新日志:防止 shit miui 强制深色模式修改自身的深色模式。
    Lemeng
        10
    Lemeng  
       2021-05-06 10:14:36 +08:00
    基本没弄过这些,不过有时候显示问题,,深色反色,倒是显示清晰
    CSGO
        11
    CSGO  
       2021-05-06 10:34:47 +08:00
    我想知道这个反色是 MIUI 怎么识别的?比如一个 APP 没有黑暗模式,那强制反色黑暗模式很合理。那如果有个 APP,虽然没适配黑暗模式,能否简单的给黑暗模式用上和白色模式一样的代码来实现强制不被 MIUI 强制黑暗模式?
    HMSQQbA
        12
    HMSQQbA  
    OP
       2021-05-06 12:37:50 +08:00
    谢谢大家讨论,基本明白了,看来设置为不跟随系统,在应用内部加入独立设置是好方法。

    似乎要用到 AppCompatDelegate 的 setDefaultNightMode 和 setLocalNightMode
    AoEiuV020
        13
    AoEiuV020  
       2021-05-06 17:52:58 +08:00
    这种一般都是谷歌安卓的更新跟不上国内安卓导致的,
    miui 出深色模式的时候谷歌安卓还没出深色模式,
    等谷歌安卓出了深色模式,miui 自然要去兼容谷歌,但软件开发者可不会去兼容 miui,只会使用谷歌提供的 api,就导致冲突,
    yorktownting
        14
    yorktownting  
       2021-05-07 14:58:54 +08:00
    @dingwen07 推特原来是强制的暗黑模式吗,体验好的离谱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2272 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.