在材料设计中设置名称属性

时间:2015-07-14 20:42:03

标签: android styles themes android-appcompat material

我有一个简单的问题,但我真的不明白。当我们在材料设计下设置新样式时,我们使用父样式如下:

<style name="AppTheme.Base" parent="Base.Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

但是,在一些教程中,我看到他们将引用“android:”插入属性中,例如:

<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>

我知道后者应该用于引用android中的每个属性,但我不明白为什么在这种情况下它有时被省略,有时不会。

2 个答案:

答案 0 :(得分:0)

如果您使用的是Android V7 Support Library,则会被省略。在这种情况下,您使用Theme.AppCompat主题之一,而不是Android主题。看看Maintaining Compatibility

答案 1 :(得分:0)

取决于他们想要的兼容性:

  • 使用android:前缀表示平台属性,即仅在存在属性的设备上有效(例如API14 +,API21 +等)

  • 在没有android:前缀的情况下使用它们指的是与app项目链接的Appcompat库的属性,即它将在所有使用API​​ 7 +的设备上生效