Style
Неизменяемые типизированные значения стиля с override-ами состояний и явным fallback.
Обзор
Style хранит значения по типизированным StyleKey и WidgetState. Запрос состояния может откатиться к NORMAL, а затем к fallback, переданному вызывающим кодом. Используйте MutableStyle для сборки в Java, Style#fromText для inline-объявлений или Style#from для одного XML-элемента <Style>.
Слои стилей
Style — один слой, а не весь каскад темы. StylePack объединяет токены темы, fallback-значения, привязки типов виджетов и подходящие определения. Локальный стиль виджета применяется после слоёв темы. Используйте StylePack#from, если XML содержит селекторы, именованные определения, анимации событий или renderer-привязки.
Парсинг и чтение inline-стиля
Style style = Style.fromText("background: #20242a; radius: 6;");
ColorView background = style.get(
StyleKeys.BACKGROUND_COLOR,
WidgetState.NORMAL,
fallbackColor);
API
Создание и парсинг
| Метод | Описание |
|---|---|
from(String) |
Парсит один XML-элемент <Style> со встроенными свойствами. |
from(String, StyleKeyRegistry) |
Парсит один XML-элемент <Style> с пользовательским реестром свойств. |
fromText(String) |
Парсит разделённые точкой с запятой inline-объявления и пропускает ошибочные записи. |
Style::from(String)
from(String)
Парсит один XML-элемент <Style> со встроенными свойствами.
| Параметр | Тип | Описание |
|---|---|---|
xml |
String |
XML с корневым элементом <Style>. |
Возвращает Style: Разобранный неизменяемый стиль.
Style::from(String, StyleKeyRegistry)
from(String, StyleKeyRegistry)
Парсит один XML-элемент <Style> с пользовательским реестром свойств.
| Параметр | Тип | Описание |
|---|---|---|
xml |
String |
XML с корневым элементом <Style>. |
registry |
StyleKeyRegistry |
Реестр со встроенными и пользовательскими style-свойствами. |
Возвращает Style: Разобранный неизменяемый стиль.
Style::fromText(String)
fromText(String)
Парсит разделённые точкой с запятой inline-объявления и пропускает ошибочные записи.
| Параметр | Тип | Описание |
|---|---|---|
text |
String |
Inline-объявления вида background: #20242a; radius: 6;. |
Возвращает Style: Разобранный изменяемый стиль; для диагностики используйте StyleTextParser.parseEditor.
Чтение значений
| Метод | Описание |
|---|---|
get(StyleKey, WidgetState, Object) |
Читает типизированное значение для состояния виджета с явным fallback. |
Style::get(StyleKey, WidgetState, Object)
get(StyleKey, WidgetState, T)
Читает типизированное значение для состояния виджета с явным fallback.
| Параметр | Тип | Описание |
|---|---|---|
key |
StyleKey |
Типизированный ключ свойства, определяющий ожидаемый Java-тип. |
state |
WidgetState |
Состояние виджета; null трактуется как NORMAL. |
fallback |
Object |
Значение, возвращаемое при отсутствии свойства. |
Возвращает Object: Значение состояния, fallback из NORMAL или переданный fallback.