Es gibt nur wenige wertvolle Dokumentationen zu dem declare-styleableTag, mit denen wir benutzerdefinierte Stile für Komponenten deklarieren können. Ich habe diese Liste gültiger Werte für das formatAttribut des attrTags gefunden. Das ist zwar nett, erklärt aber nicht, wie man einige dieser Werte verwendet. Beim Durchsuchen von attr.xml (der Android-Quelle für die Standardattribute) habe ich festgestellt, dass Sie Folgendes tun können:
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
Das formatAttribut kann offensichtlich auf eine Kombination von Werten gesetzt werden. Vermutlich formathilft das Attribut dem Parser, einen tatsächlichen Stilwert zu interpretieren. Dann habe ich dies in attr.xml entdeckt:
<!-- 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>
Beide scheinen eine Reihe zulässiger Werte für den angegebenen Stil zu deklarieren.
Ich habe also zwei Fragen:
- Was ist der Unterschied zwischen einem Stilattribut, das einen Wertesatz annehmen kann, und einem, der einen Wertesatz
enumannehmen kannflag? - Kennt jemand eine bessere Dokumentation für die Funktionsweise
declare-styleable(außer Reverse Engineering des Android-Quellcodes)?