colorAccent 或 colorSecondary with Material 组件主题

colorAccent or colorSecondary with Material Component theme

使用 Android Studio 的向导创建新应用程序时,会使用从 Theme.MaterialComponents.Light.DarkActionBar 派生的主题并设置 colorAccent。另一方面,official documentation 使用 colorSecondary 而根本没有提及 colorAccent。两者可以互换吗?喜欢什么?

根据 material 设计文档,主要颜色和次要颜色实际上是 primaryColoraccentColor Android工作室。但如果需要更多变化,则可以使用 secondaryColor

所以更喜欢 Android Studio 中的 accentColor 标签来定义来自 material 设计文档的次要颜色。

您可以尝试一些 material 调色板,例如 https://www.materialpalette.com 来了解行为。

Theme.MaterialComponents 使用 colorSecondary,如 material guidelines and in the official doc 中所述。 库中定义的所有组件都使用此属性。

但是,在库中,还有继承自 AppCompat 主题的 Bridge themes,如果您不能将主题更改为继承自 Material,您可以使用它们组件主题。
这些主题继承自 AppCompat 主题,为您定义了新的 Material 组件主题属性。

您可以查看 bridge theme in the library:

<style name="Base.V14.Theme.MaterialComponents.Light" parent="Base.V14.Theme.MaterialComponents.Light.Bridge">

  <!-- Colors -->
  <item name="colorAccent">?attr/colorSecondary</item>

在这里您可以找到这些主题的 colorSecondarycolorAccent 之间的映射。

是的,我确实相信 colorSecondarycolorAccent 的新术语并且可以互换,因为如果您阅读 docs 具体的二次色定义,它会说

A secondary color provides more ways to accent and distinguish your product. Having a secondary color is optional, and should be applied sparingly to accent select parts of your UI.

我想从那句话就可以很清楚地看出他们都有相同的目的。