" android:"之间的真正区别是什么?和" attr"?

时间:2015-08-09 00:58:37

标签: android xml styles themes

当我尝试在activity_main.xml中使用某些资源时

while (i < 255)

我找到了一些我无法理解的东西。我知道&#34; android:&#34;当XML解析器读取文档时,表示系统级属性,&#34; attr&#34;表示我的主题中的属性(对吗?),但为什么有些属性应该添加包名称&#34; android:&#34;虽然有相同的属性?比如我可以像我这样在我的styles.xml中定义属性

    android:minHeight="?android:actionBarSize"
    android:background="?attr/colorPrimary"

但我也可以定义像

这样的属性
    <item name="colorPrimaryDark">@color/purple</item>

我的英语非常糟糕,所以mybe我无法解释我想知道的事情。

1 个答案:

答案 0 :(得分:0)

(来自this回答)

使用问号前缀ID表示您要访问样式主题中定义的样式属性,而不是对属性进行硬编码,如引用样式属性中所述。

更具体地说,?意味着额外的间接水平。可以将其视为取消引用主题属性以获取它指向的资源,而不是引用属性本身。您可以使用?android:attr/foo

查看此信息