有人可以告诉我
之间有什么区别?android:attr/colorPrimary
和
?attr/colorPrimary
无论我使用哪种,结果都是一样的。 Altough first选项会在某些设备上导致android.view.InflateException
。
答案 0 :(得分:1)
两者几乎都经常相同。当你使用?attr/colorPrimary
时,它的工作完全正常,因为编译器已经知道' android'必须附加。
关于你说?android:attr/colorPrimary
给你例外,那么在这种情况下,请尝试仅使用第二个选项..
对于styles.xml中的示例:以下可能/可能不会每次都有效
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorPrimary">@color/primary_material_dark</item>
<item name="android:colorPrimaryDark">@color/primary_dark_material_dark</item>
</style>
</resources>
但这主要有效:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary_material_dark</item>
<item name="colorPrimaryDark">@color/primary_dark_material_dark</item>
</style>
答案 1 :(得分:0)
建造者知道颜色来自attr
,所以它是多余的。该文档指出:
...您不需要明确声明类型...可以排除attr类型。
请参阅:App resources overview: Referencing style attributes
对于android:
,android:colorPrimary
中的前缀指的是实质主题的属性(API 21及更高版本)。如果没有前缀,?colorPrimary
将来自支持库。