HMSQQbA
V2EX  ›  Android

MIUI 12 适配深色模式问题

  •  
  •   HMSQQbA · May 5, 2021 · 17032 views
    This topic created in 2013 days ago, the information mentioned may be changed or developed.
    MIUI 12 的深色模式中有个应用列表,可以在全局深色模式开启的情况下,允许某些应用不使用深色模式。

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

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

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

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

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

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

    参考 https://github.com/RikkaApps/RikkaX/commit/3a0ab86f81fc8a8985d4b2892435ad449e92b9c3
    HMSQQbA
    HMSQQbA
    OP
    May 5, 2021
    2
    @RikkaW 谢谢大佬回复!但这样似乎会完全禁用深色模式。

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

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

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

    似乎要用到 AppCompatDelegate 的 setDefaultNightMode 和 setLocalNightMode
    AoEiuV020
    AoEiuV020
    May 6, 2021
    13
    这种一般都是谷歌安卓的更新跟不上国内安卓导致的,
    miui 出深色模式的时候谷歌安卓还没出深色模式,
    等谷歌安卓出了深色模式,miui 自然要去兼容谷歌,但软件开发者可不会去兼容 miui,只会使用谷歌提供的 api,就导致冲突,
    yorktownting
    yorktownting
    May 7, 2021
    14
    @dingwen07 推特原来是强制的暗黑模式吗,体验好的离谱
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4039 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 07:33 · PVG 15:33 · LAX 23:33 · JFK 02:33
    ♥ Do have faith in what you're doing.