【问题标题】:Android dark theme just darkens colors instead of applying night theme colorsAndroid深色主题只是使颜色变暗而不是应用夜间主题颜色
【发布时间】:2021-03-10 04:28:09
【问题描述】:

我们正在努力让我们的应用在 Android 10 上的浅色 UI 和深色 UI 模式下都看起来不错(通过 Android Studios 的主题)。

浅色主题效果很好,并且可以很好地应用主要和主要强调色。问题与黑暗主题有关。如果在手机上启用了深色模式(小米米 9 更新到 MIUI 12),那么即使我们在深色主题文件上也设置了相同的原色和强调色,颜色也会变得更暗。甚至我们使用“@colors/name_of_color”应用的恒定颜色也会变暗(据我了解,这根本不应该发生)。

这是我们的主题文件:

主题.xml

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.DynaswayConcussion" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/main_green</item>
    <item name="colorPrimaryVariant">@color/main_green</item>
    <item name="colorOnPrimary">@color/main_gray</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>

<style name="Theme.DynaswayConcussion.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="Theme.DynaswayConcussion.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="Theme.DynaswayConcussion.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>

theme.xml(夜晚)

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.DynaswayConcussion" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/main_green</item>
    <item name="colorPrimaryVariant">@color/main_green</item>
    <item name="colorOnPrimary">@color/main_gray</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_200</item>
    <item name="colorOnSecondary">@color/black</item>
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>

<style name="Theme.DynaswayConcussion.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="Theme.DynaswayConcussion.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>

<style name="Theme.DynaswayConcussion.PopupOverlay" parent="ThemeOverlay.AppCompat.Dark" />
</resources>

colors.xml

    <?xml version="1.0" encoding="utf-8"?>
<resources>

<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="accent_green">#377854</color>
<color name="main_green">#66d999</color>

<color name="main_gray">#4d4543</color>
<color name="main_pink">#d971cd</color>
<color name="accent_pink">#fadadd</color>

<color name="chart_baseline">#ebd810</color>
<color name="chart_test">#d13e11</color>

</resources>

我们使用 AppCompatActivity 和 Fragment 来开发应用程序的屏幕,并且我们没有直接在任何按钮上应用颜色(这些按钮变成了非常深的绿色阴影)。我们只是将背景颜色直接应用于卡片上的某些背景(accent_pink 颜色),甚至那些变暗的背景。

这是 MIUI 的问题吗?还是我们的配置有问题?

【问题讨论】:

    标签: android android-dark-theme


    【解决方案1】:

    您必须在 API 29+ 的基本主题中将 android:forceDarkModeAllowed 设置为 false

    在这里找到解决方案:Theme Problem when Dark Mode is activated under MIUI 11 / 12

    【讨论】:

    • 我想我在某个时候测试过这个,但我会再试一次,看看它是否能解决它。至少,谢谢你的回答。
    【解决方案2】:

    我实际上遇到了同样的问题,一个人回答我告诉我删除“Theme.MaterialComponents.DayNight.DarkActionBar”并放置“Theme.MaterialComponents.Light”,但老实说它对我没有用..如果你想在这里看到这个主题,那就是:Dark theme problem with my App in Android Studio。 我看到了其他教程,他们建议复制新的值资源并使用暗模式重命名它,并更改有关“Theme.MaterialComponents.DayNight”的参数,设置与您使用的灯光相同的参数。

    【讨论】:

    • 感谢您的回复,至少它提供了很多信息,因为我知道我不是唯一一个有问题的人。我仍然无法修复它
    猜你喜欢
    • 2021-12-21
    • 2016-08-23
    • 2014-04-27
    • 2021-03-14
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多