android属性

时间:2016-07-29 20:43:19

标签: android android-layout android-theme android-styles

让我们从一个例子开始

<attr name="spinnerDropDownItemStyle" format="reference" />

如何区分并理解它?

我多次观看Android themes & styles demystified - Google I/O 2016讲话,但我仍然不明白这个参考资料是如何运作的。

1 个答案:

答案 0 :(得分:20)

当属性引用另一个资源ID时,使用

reference格式。例如,可以使用以下属性,如:

<!-- Declaration -->
<attr name="mydrawale" format="reference" />

<!-- Usage -->
app:mydrawable="@drawable/shape1"

因此,@layout/...@color/...@style/...等资源的类型为reference

但是,colorboolean等属性格式需要分别使用颜色文字(例如0x00FF00)和布尔文字(例如true)。

在您的情况下,spinnerDropDownItemStyle是一个获取@style/...之类资源的属性,它本身就是指向样式类型的资源条目的指针。

顺便说一句,您可以使用|将格式设置为多种类型。例如,对于以下属性,@color/mycolor0x00FF00都可以接受。

<attr name="mycolor" format="reference|color" />