tgoop.com/dev_easy_notes/129
Last Update:
Путаница с темами и стилями
Очень частая ошибка, особенно у начинающих. Не понятно чем стиль отличается от темы. Они буквально описываются одним и тем же атрибутом style. В любую View можно указать вместо темы стиль, а вместо стиля тему и никакой линтер нигде не скажет, что что-то не так. Разница описывается лишь неймингом в xml. Когда нет никаких ограничений, рано или поздно кто-то сотворит фигню.
Помимо этого порой сложно узнать какие атрибуты вообще тема устанавливает. Это происходит из архитектурного ограничения. Для стилей и тем хорошо подходит принцип наследования. Однако xml это вообще не тот язык, чтобы описывать наследование. Поэтому у тем и стилей достаточно костыльное наследование в xml. Нужно скакать по ссылкам в надежде, что ты доберешься до корневой темы, которая устанавливает нужные тебе атрибуты.
В compose эту проблему решили просто тем, что теперь тема или стиль это конкретный объект. Благодаря системе типизации их невозможно спутать, компилятор тупо такое не пропустит. Можно легко понять какие атрибуты у тебя установлены в теме, так как это конфигурируется специальной функцией.
BY Dev Easy Notes
Share with your friend now:
tgoop.com/dev_easy_notes/129