我有一个简单的问题,但我真的不明白。当我们在材料设计下设置新样式时,我们使用父样式如下:
<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中的每个属性,但我不明白为什么在这种情况下它有时被省略,有时不会。
答案 0 :(得分:0)
如果您使用的是Android V7 Support Library,则会被省略。在这种情况下,您使用Theme.AppCompat主题之一,而不是Android主题。看看Maintaining Compatibility。
答案 1 :(得分:0)
取决于他们想要的兼容性:
使用android:
前缀表示平台属性,即仅在存在属性的设备上有效(例如API14 +,API21 +等)
在没有android:
前缀的情况下使用它们指的是与app项目链接的Appcompat库的属性,即它将在所有使用API 7 +的设备上生效