如何阻止android中的夜间模式改变颜色?

问题描述

我正在通过扩展 View 类为 android 开发一个绘图应用程序。在 onDraw 方法中,每次调用 onDraw 时,我都使用 canvas.drawColor(Color.WHITE) 绘制背景并在其上绘制其他内容。应用于设备,我的自定义视图的背景更改为黑色。我怎样才能阻止这种情况?

解决方法

确保您的应用的主题不是从 Theme.MaterialComponents.DayNight 继承,而是从 Theme.MaterialComponents.Light 或它的某个版本继承以进一步禁用夜晚。如果您需要使用 Theme.MaterialComponents.DayNight 主题,那么您可以在 values/colors.xmlvalues-night/colors.xml 上指定颜色。该应用将使用 values-night/colors.xml 颜色作为夜间主题。

,

为您的自定义视图设置背景颜色不要将其保留为默认颜色。 Android 更改主题更改时的默认颜色。

另一种解决方案是将主题设置为

<style name="App.Theme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">

但是无论系统/手机主题如何,这都会导致主题始终为浅色。