Існує дуже мала документація про declare-styleable
тег, за допомогою якої ми можемо оголосити власні стилі для компонентів. Я знайшов цей список допустимих значень для format
атрибута attr
тегу. Хоча це приємно, наскільки це можливо, але це не пояснює, як використовувати деякі з цих значень. Переглядаючи 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)?