Там очень мало документации о теге 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)?