当前位置: 首页 > 知识库问答 >
问题:

Android dark theme只是将颜色变暗,而不是应用夜间主题颜色

孟树
2023-03-14

我们正在努力使我们的应用程序在Android 10的浅色用户界面和深色用户界面模式下都看起来不错(通过Android Studio的主题)。

灯光主题效果很好,它可以很好地应用主色调和主色调。这个问题伴随着黑暗的主题。如果在手机上激活了深色模式(小米9更新为MIUI 12),则颜色只会变暗,即使我们在深色主题文件中也设置了相同的主色和强调色。即使是我们用“@colors/name\u of\u 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>

颜色。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_粉红色),甚至那些深色的。

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

共有2个答案

祁宾白
2023-03-14

实际上,我也遇到了同样的问题,一个人回答我说要删除“Theme.MaterialComponents.DayNight.DarkActionBar”并放上“Theme.MaterialComponents.Light”,但老实说,这对我不起作用。。如果你想看看这里的主题,那就是:Android Studio中我的应用程序的黑暗主题问题。我看过其他教程,其中他们建议复制一个新的值资源,并将其重命名为暗模式,并更改有关“Theme.MaterialComponents.DayNight”的参数,设置与您使用的灯光相同的参数。

百里涛
2023-03-14

您必须在API 29的基本主题中将android: forceDarkMode准许设置为false

解决方案:在MIUI 11/12下激活暗模式时出现主题问题

 类似资料:
  • 我如何创建一个简单的标题与此属性: 作为这个图像?

  • 我使用的是Eclipse Color Theme插件。 当我更改主题时,除了.等之外,所有的颜色都改变了。 它们保持黑色,而当我试图使用深色主题时,这使得事情变得困难。 问题是在使用Groovy时没有正确设置语法颜色。 这解决了问题

  • 我想在我的Flitter应用程序中使用六色代码,使用backgroundColor:Colors#34A123。但我只能拍到颤振默认值

  • 我是Ubuntu13.04、Eclipse 4.2.1(ADT v22)用户。 当我可能添加插件时,我发现了错误,该插件是Eclipse的Eclipse颜色主题。 和在Preferences-General-Applace中,当我单击Color Theme output error Log... 时(Eclipse Color Theme get on Help-Install new softw

  • 配置插件 暂时只支持配合vux-loader使用。 注意的是主题文件不能引入其他less文件,只能为简单变量列表。 请配置vux-loader的less-theme插件,指定用以覆盖的less文件路径: { name: 'less-theme', path: 'src/styles/theme.less' // 相对项目根目录路径 } 可配置颜色 源码地址:https://github.