让我们从一个例子开始
<attr name="spinnerDropDownItemStyle" format="reference" />
如何区分并理解它?
我多次观看Android themes & styles demystified - Google I/O 2016讲话,但我仍然不明白这个参考资料是如何运作的。
答案 0 :(得分:20)
reference
格式。例如,可以使用以下属性,如:
<!-- Declaration -->
<attr name="mydrawale" format="reference" />
<!-- Usage -->
app:mydrawable="@drawable/shape1"
因此,@layout/...
,@color/...
,@style/...
等资源的类型为reference
。
但是,color
,boolean
等属性格式需要分别使用颜色文字(例如0x00FF00
)和布尔文字(例如true
)。
在您的情况下,spinnerDropDownItemStyle
是一个获取@style/...
之类资源的属性,它本身就是指向样式类型的资源条目的指针。
顺便说一句,您可以使用|
将格式设置为多种类型。例如,对于以下属性,@color/mycolor
和0x00FF00
都可以接受。
<attr name="mycolor" format="reference|color" />