【发布时间】:2011-08-26 14:19:01
【问题描述】:
关于declare-styleable 标记的宝贵文档很少,我们可以通过它为组件声明自定义样式。我确实为attr 标签的format 属性找到了this list 的有效值。虽然这很好,但它并没有解释如何使用其中的一些值。浏览attr.xml(标准属性的Android源代码),我发现你可以这样做:
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
format 属性显然可以设置为值的组合。大概format 属性有助于解析器解释实际的样式值。然后我在 attr.xml 中发现了这个:
<!-- Default text typeface. -->
<attr name="typeface">
<enum name="normal" value="0" />
<enum name="sans" value="1" />
<enum name="serif" value="2" />
<enum name="monospace" value="3" />
</attr>
<!-- Default text typeface style. -->
<attr name="textStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
这两个似乎都声明了一组指定样式的允许值。
所以我有两个问题:
- 可以采用一组
enum值的样式属性与可以采用一组flag值的样式属性有什么区别? - 有没有人知道关于
declare-styleable工作原理的更好文档(除了对 Android 源代码进行逆向工程)?
【问题讨论】:
标签: android xml styleable declare-styleable