在 MIUI 11 / 12 下激活暗模式时的主题问题

Posted

技术标签:

【中文标题】在 MIUI 11 / 12 下激活暗模式时的主题问题【英文标题】:Theme Problem when Dark Mode is activated under MIUI 11 / 12 【发布时间】:2020-10-23 01:12:43 【问题描述】:

编辑:MIUI 强制在我的应用中激活暗模式,因此应用看起来很糟糕。

在我的应用程序的某些部分中,当我将颜色设置为“白色”时,它将显示为白色。

如果我将其设置为“灰色”,它将显示为灰色。

如果我将它设置为“红色”,它将显示为红色。

但是:如果我将它设置为“黑色”,它将是“白色!”

我该如何解决这个问题??

【问题讨论】:

【参考方案1】:

找到解决方案!

<item name="android:forceDarkAllowed">true</item> 设置为 false 在App_Resources/Android/src/main/res/values/styles.xml

感谢此链接: https://medium.com/@kivind/nativescript-disabling-dark-mode-382e5dfd11bd

所以 style.xml 应该是这样的:

    <style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
        <item name="android:forceDarkAllowed">false</item>
        <item name="colorPrimary">@color/ns_primary</item>
        <item name="colorPrimaryDark">@color/ns_primaryDark</item>
        <item name="colorAccent">@color/ns_accent</item>
    </style>

【讨论】:

不,这对我不起作用。 MIUI 12.04 全球版。安卓 10。 确保 AppThemeBase 是您在 Manifest 中的主题,如下所示: android:theme="@style/AppThemeBase" 您可能还想在 res/values-v29 中创建一个单独的主题以保留 @Pixza 我正在使用 MIUI 12,它运行良好。请冷静 为我工作!将其设置为false 很重要,一味复制了真实的:D【参考方案2】:

结合许多不同的解决方案,我想出了这个演练

AppEntryPoint.kt

class AppEntryPoint : Application() 
    override fun onCreate() 
        super.onCreate()
        /*in some XIAOMI devices seems to be necessary*/
        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
    

AndroidManifest.xml

<application
    android:name=".AppEntryPoint"
    ...
    android:theme="@style/Theme.MyMainTheme">
    ...
</application>

themes.xml

<style name="Theme.MyMainTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    ...
    <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>

</style>

我不知道这是否是正确的解决方案,但现在它对我有用。 在某些小米设备中可能有一种奇怪的方式来管理这种行为......

希望这个答案对其他人也有用

【讨论】:

【参考方案3】:

在小米红米 9 上,至少必须在夜间和白天的 theme.xml 文件中将此值设置为 false。并像魅力一样工作。

【讨论】:

以上是关于在 MIUI 11 / 12 下激活暗模式时的主题问题的主要内容,如果未能解决你的问题,请参考以下文章

防止在不增加 SDK 版本的情况下在 MIUI 中强制暗模式

在miui(小米)中检测暗模式

下载为 html 时的 Jupyter 笔记本暗模式无法正确呈现

如何编辑 Flutter 暗模式

获取明暗模式主题更改的更新

如何添加本地存储以在 Gatsby 中保留暗模式主题