Android“?colorPrimary”与“?attr/colorPrimary”?

Der*_*k K 9 android android-styles android-attributes

我找不到任何关于以下差异的信息:

android:textColor="?attr/colorPrimary"
Run Code Online (Sandbox Code Playgroud)

对比

android:textColor="?colorPrimary"
Run Code Online (Sandbox Code Playgroud)

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

例如:

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

据说这里有所不同。

非常感谢。

Der*_*k K 5

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

由于系统资源工具知道在此上下文中需要属性资源,因此您无需明确说明类型(即 ?android:attr/textColorSecondary)——您可以排除 attr 类型。

所以,我推断它是这样的:AppCompat 库属性被视为自定义属性,因此我们通过没有“android”关键字的问号指向它们。“attr”是一种资源类型,对于平台和自定义属性(来自文档)都是可选的。 安卓文档