【问题标题】:How to stop night mode in android from changing color?如何阻止android中的夜间模式改变颜色?
【发布时间】:2021-07-11 06:55:33
【问题描述】:

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

【问题讨论】:

    标签: android view colors themes paint


    【解决方案1】:

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

    【讨论】:

    • schemas.android.com/tools"> 这是我的主题,我已删除theme-night.xml 也是..但它仍然无法正常工作..
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 如何更改自定义视图的默认颜色?设置主题不起作用..我也更改了themes.xml(夜间)中的父主题。但是还是不行?
    • 如果您不想要夜间模式,请尝试删除 theme.xml(night)
    • 我删除了 theme.xml(night),但它仍然无法正常工作..
    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2021-01-17
    • 2021-12-23
    • 2023-03-08
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多