防止在不增加 SDK 版本的情况下在 MIUI 中强制使用暗模式
Prevent forcing dark mode in MIUI without increasing SDK version
我的新应用不支持深色模式。当我在小米上安装它时(开启深色模式),MIUI 会在其上应用深色模式。 MIUI 在“设置 -> 显示 -> 更多深色模式选项”(screenshot of "More Dark mode options") 中进行设置。尽管我的应用程序不支持此选项,但我的应用程序已启用此选项并强制使用暗模式。大多数其他应用程序未启用此模式。有些应用程序是“白色”的,但对于它们而言,此模式未启用并且它们可以正常工作。
我找到了将以下行添加到 themes.xml:
的解决方案
<item name="android:forceDarkAllowed">false</item>
问题是,这一行需要设置minSdkVersion = 29。
如何防止 MIUI 在“更多黑暗模式选项”中启用该选项并在我的应用程序中强制使用黑暗模式(就像在大多数其他“白色”应用程序中一样)并将 SDK 版本保持在 21?
MIUI 12 基于Android10
只需将 themes.xml 文件复制到 values-v29 文件夹中,然后仅在文件的 values-v29 变体中添加 <item name="android:forceDarkAllowed">false</item>
。
如果您在主题文件中定义了很多内容,那么使用类似以下内容可能是个好主意:
values/themes.xml
<style name="Theme.App.Base" parent="Theme.AppCompat.Light.NoActionBar">
... // Your attributes here
</style>
<style name="Theme.App" parent="Theme.App.Base">
</style>
values-v29/themes.xml
<style name="Theme.App" parent="Theme.App.Base">
<item name="android:forceDarkAllowed">false</item>
</style>
更新:另外,如果您将项目保存在您的正常值文件夹中,我认为它不会崩溃,为什么您首先认为这是一个问题?这样的东西行不通吗?
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
我的新应用不支持深色模式。当我在小米上安装它时(开启深色模式),MIUI 会在其上应用深色模式。 MIUI 在“设置 -> 显示 -> 更多深色模式选项”(screenshot of "More Dark mode options") 中进行设置。尽管我的应用程序不支持此选项,但我的应用程序已启用此选项并强制使用暗模式。大多数其他应用程序未启用此模式。有些应用程序是“白色”的,但对于它们而言,此模式未启用并且它们可以正常工作。
我找到了将以下行添加到 themes.xml:
的解决方案<item name="android:forceDarkAllowed">false</item>
问题是,这一行需要设置minSdkVersion = 29。 如何防止 MIUI 在“更多黑暗模式选项”中启用该选项并在我的应用程序中强制使用黑暗模式(就像在大多数其他“白色”应用程序中一样)并将 SDK 版本保持在 21?
MIUI 12 基于Android10
只需将 themes.xml 文件复制到 values-v29 文件夹中,然后仅在文件的 values-v29 变体中添加 <item name="android:forceDarkAllowed">false</item>
。
如果您在主题文件中定义了很多内容,那么使用类似以下内容可能是个好主意:
values/themes.xml
<style name="Theme.App.Base" parent="Theme.AppCompat.Light.NoActionBar">
... // Your attributes here
</style>
<style name="Theme.App" parent="Theme.App.Base">
</style>
values-v29/themes.xml
<style name="Theme.App" parent="Theme.App.Base">
<item name="android:forceDarkAllowed">false</item>
</style>
更新:另外,如果您将项目保存在您的正常值文件夹中,我认为它不会崩溃,为什么您首先认为这是一个问题?这样的东西行不通吗?
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>