如何在Android Studio中禁用或设置暗黑/夜间模式?

3
我想知道是否有可能在Android Studio的应用程序中禁用夜间/暗黑模式,因为在我的情况下,它会破坏我的应用程序的美观。
我尝试将此代码行用于所有活动,但它没有起作用:
setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

如果没有任何方法可以禁用夜间/暗黑模式,您能告诉我应该怎么做才能使我的应用程序对由于夜间/暗黑模式而发生的颜色变化作出正确响应吗?(包括背景颜色、可绘制形状的颜色以及每个受此模式修改的颜色)。
(我接受文档或任何可以帮助我解决这个大问题的信息)
我的styles.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
你好 @CommonsWare,非常感谢你的回答。你建议我去哪里找?我已经检查了我的样式,但是我无法弄清楚问题出在哪里。我已经更新了我的问题,展示了我的styles.xml文件。 - Tomas M
2
好的,里面没有任何提示你会自动适应暗模式。但是,我看到文档建议某些系统主题会自动设置android:forceDarkAllowed="true"(在我看来非常愚蠢)。尝试在你的AppTheme中添加<item name="android:forceDarkAllowed">false</item>,看看是否有帮助。 - CommonsWare
非常感谢你,兄弟!@CommonsWare,那段代码真的好用! - Tomas M
请记住,“深色模式”不等同于“夜间模式”。它们是完全不同的。深色模式在Android 10中引入,强制使用内置的黑白颜色,而夜间模式则在早期版本中引入,根据您的实现使用默认/定义的样式。如果您希望您的应用程序使用您定义的亮色/夜间样式,而不依赖于内置的深色样式,您可能需要在themes.xml或style.xml中将forceDarkAllowed设置为false,因为深色模式可能会产生冲突。 - Bitwise DEVS
1个回答

3

最终解决了禁用暗黑/夜间模式的问题。我们需要将以下代码添加到我们的AppThemes中:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接