MIUI 12 适配深色模式问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HMSQQbA
V2EX    Android

MIUI 12 适配深色模式问题

  •  
  •   HMSQQbA 2021-05-05 21:03:23 +08:00 14625 次点击
    这是一个创建于 1619 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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     Solana     5585 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 90ms UTC 07:11 PVG 15:11 LAX 00:11 JFK 03:11
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86