我有一个简单的问题,但是我真的不明白。当我们在material design下设置新样式时,我们使用父样式,如下所示:
<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中的每个属性,但我不明白为什么在这种情况下它有时被省略,有时没有。
如果您正在使用Android V7支持库,则省略。在本例中,您使用主题之一。AppCompat主题,而不是Android主题。查看维护兼容性
这取决于他们想要的兼容性:
-
使用
android:
前缀,它们指的是平台属性,也就是说,它只对存在该属性的设备有效(例如API14+, API21+等) -
使用没有
android:
前缀,他们指的是一个Appcompat库的属性链接到应用项目,也就是说,它将有效的所有设备与API 7+