微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我的新应用不支持深色模式。当我在小米上安装它时(打开暗模式)Miui 在其上应用暗模式。 Miui 在“设置 -> 显示 -> 更多暗模式选项”(screenshot of "More Dark mode options")中有设置。尽管我的应用程序不支持此选项,但我的应用程序已启用此选项并强制暗模式。大多数其他应用程序没有启用此模式。有些应用程序是“白色”的,但对它们来说,此模式未启用并且它们可以正常工作。

我通过将以下行添加到 themes.xml 中找到了解决方案:

<item name="android:forceDarkAllowed">false</item>

问题是,这一行需要设置 minSdkVersion = 29。 如何防止 Miui 启用“更多暗模式选项”中的选项并在我的应用中强制暗模式(就像大多数其他“白色”应用一样),同时将 SDK 版本保持在 21?

基于 Android 10 的 Miui 12

解决方法

只需将您的 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。