Theme.MaterialComponents colorPrimary 不工作

Rar*_*y7- 4 android material-design

我正在使用Theme.MaterialComponent,但它不会影响我的 actionBar,为什么?

样式文件

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground">@color/windowBackground</item>
        <item name="android:textColor">@color/white</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

颜色文件

<resources>
    <color name="colorPrimary">#801336</color>
    <color name="colorPrimaryDark">#510a32</color>
    <color name="colorAccent">#ee4540</color>
    <color name="windowBackground">#2d142c</color>

    <color name="white">#FFF</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

0X0*_*gar 5

Theme.MaterialComponents作为应用主题的父级对您ActionBar注意到的内容没有影响。您需要使用从基本主题继承的主题之一。

  • Theme.MaterialComponents.NoActionBar如果你想用自己的Toolbar作为ActionBar,有一个黑暗的主题(在黑暗的背景颜色白色文本)
  • Theme.MaterialComponents.Light对于ActionBar由运行时生成的浅色主题(浅色背景上的黑色文本)
  • Theme.MaterialComponents.Light.NoActionBar对于您自己的轻主题Toolbar,没有自动生成ActionBar
  • Theme.MaterialComponents.Light.DarkActionBar 用于整体浅色主题,但深色除外 ActionBar
  • Theme.MaterialComponents.DayNightDayNight主题
  • Theme.MaterialComponents.DayNight.NoActionBar 对于没有自动生成的 DayNight 主题 ActionBar
  • Theme.MaterialComponents.DayNight.DarkActionBar 对于带有深色的 DayNight 主题 ActionBar

注意:您可以使用任何颜色,无论您选择什么主题。但是,如果您选择例如 Theme.MaterialComponents.Light.DarkActionBar并设置

 <item name="colorPrimary">@color/white</item>
Run Code Online (Sandbox Code Playgroud)

那么你的ActionBar将是白色的 - 因为你说你有一个黑色ActionBar- 文本也将是白色的。因此,您需要确保有足够的对比度。