【发布时间】:2021-02-16 14:53:49
【问题描述】:
我想知道是否可以在 android studio 的应用程序中禁用夜间/黑暗模式,因为就我而言,它破坏了我的应用程序的美感。
我已经尝试在我的所有活动中使用此代码行,但它不起作用:
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
如果没有任何方法可以禁用夜间/黑暗模式,您能告诉我我必须做什么才能使我的应用正确响应由于夜间/黑暗模式导致的颜色变化吗? (这包括背景颜色、drawable 的形状颜色以及由此模式修改的每种颜色)
(我接受可以帮助我解决这个大问题的文档或任何类型的信息)
我的样式.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
<item name="android:padding">7dp</item>
</style>
</resources>
【问题讨论】:
-
深色模式不会影响您的应用程序,除非您在应用程序中启用它。例如,您可能选择了
DayNight主题。找出您的应用中启用暗模式支持的内容,然后进行更改。 -
您好@CommonsWare,非常感谢您的回答。你建议我去哪里找?我检查了我的风格,但我无法弄清楚问题所在。我已经更新了我的问题,显示了我的 styles.xml
-
好的,没有任何内容表明您会自动适应暗模式。但是,我看到the docs 建议
android:forceDarkAllowed="true"是由某些系统主题自动设置的(恕我直言,这是非常愚蠢的)。尝试将<item name="android:forceDarkAllowed">false</item>添加到您的AppTheme,看看是否有帮助。 -
Broooo,非常感谢。 @CommonsWare 该代码有效
-
记住
Dark Mode不是Night Mode。它们完全不同。 DM 是在 Android 10 中引入的,它强制内置黑白颜色,而 NM 在早期版本上使用默认/定义样式,具体取决于您的实现。如果您希望您的应用程序使用您定义的光/夜风格而不依赖于内置的深色风格,您可能希望forceDarkAllowed在 theme.xml 或 style.xml 中设置为 false,因为 DM 可能会发生冲突。
标签: android android-dark-theme