最佳答案
有关 declare-styleable
标记的文档非常少,我们可以通过这些文档声明组件的自定义样式。我确实找到了 attr
标记的 format
属性的有效值的 这份名单。虽然就目前而言这很好,但它并没有解释如何使用其中的一些值。通过浏览 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
值中的一个的 style 属性和可以接受一组 flag
值中的一个的 style 属性之间有什么区别?declare-styleable
如何工作的更好的文档(除了逆向工程的 Android 源代码) ?