使用Android Studio向导创建新的应用程序时,会使用派生自Theme.MaterialComponents.Light.DarkActionBar
的主题,并设置colorAccent
。另一方面,官方文档使用colorSecondary
,并且完全没有提到colorAccent
。这两者是否可以互换?应该选择哪一个?
使用Android Studio向导创建新的应用程序时,会使用派生自Theme.MaterialComponents.Light.DarkActionBar
的主题,并设置colorAccent
。另一方面,官方文档使用colorSecondary
,并且完全没有提到colorAccent
。这两者是否可以互换?应该选择哪一个?
Theme.MaterialComponents
使用 colorSecondary
,如material指南和官方文档中所述。库中定义的所有组件都使用此属性。Bridge
themes,它们继承自AppCompat
主题,并且如果您无法将您的主题继承自Material Components主题,则可以使用它们。这些主题从AppCompat
主题继承,为您定义新的Material Components主题属性。<style name="Base.V14.Theme.MaterialComponents.Light" parent="Base.V14.Theme.MaterialComponents.Light.Bridge">
<!-- Colors -->
<item name="colorAccent">?attr/colorSecondary</item>
在这里,你可以找到这些主题中colorSecondary
和colorAccent
之间的映射关系。是的,我确实相信colorSecondary
是colorAccent
的新术语,并且它们是可以互换的,因为如果您阅读文档,特别是关于次要颜色的定义,它说:
次要颜色提供了更多强调和区分产品的方式。拥有次要颜色是可选的,并且应该只小量地应用于突出显示您的UI的部分。
我猜仅从这个陈述中就很清楚它们两者具有相同的作用。
accentColor
是用于 AppCompat
主题,而 secondaryColor
则是用于 MaterialComponents
主题,例如请参见此处。但是这真的很令人困惑。 - medihack