Android“?colorPrimary”vs“?attr / colorPrimary”?

时间:2017-06-06 13:45:13

标签: android android-styles android-attributes

我找不到任何有关以下区别的信息:

android:textColor="?attr/colorPrimary"

VS

android:textColor="?colorPrimary"

我读过“?attr”表示当前主题中指定的属性值,但没有“attr”它会给出相同的结果(=我的主题中定义的颜色)。它的行为与其他属性相似?

例如:

android:background="?attr/selectableItemBackground" 等于android:background="?selectableItemBackground"

Here it's told that it differs.

非常感谢。

1 个答案:

答案 0 :(得分:2)

好的,我终于在文档中找到了:

  

因为系统资源工具知道在此上下文中需要属性资源,所以您不需要显式声明该类型(可能是?android:attr / textColorSecondary) - 您可以排除attr类型。

所以,我推断它是这样的:AppCompat库属性被视为自定义属性,因此我们用一个没有“android”关键字的问号来指出它们。 “attr”是平台和自定义属性(来自docs)可选的资源类型。 Android documentation