Я занимаюсь разработкой коллекции библиотек для нескольких мобильных приложений в моей компании. В моих библиотеках есть экраны, которые можно «переименовать», если они интегрированы в дочерние или клиентские приложения.
Пример: на моем функциональном экране кнопки и метки в моей компании будут зелеными приложения, синие, если интегрированы в приложение Facebook, красные в приложении Coca Cola ...
У меня есть тема с около 20 атрибутами цвета (основной, основной) -contrast, selected, background ...), который я хотел бы применить ко всем экранам моих модулей / каркасов, просто установив его во время компиляции приложения или во время выполнения.
Как я могу сделать это?
Я полагаю, что в обеих технологиях я могу предоставить собственный подкласс каждого компонента (представление, кнопка, текстовое представление и т. д. c), чтобы его цвета менялись во время выполнения с помощью пользовательской логики c, но это было бы очень тяжело ...
Есть ли чистый способ определения цветов в качестве переменных в Интерфейсном Разработчике и Редакторе Макета, чтобы я мог позволить вызывающему приложению изменить он "основной", "выбранный" и т. д. c темы, и это заставит модуль соответствующим образом изменить свой пользовательский интерфейс?
На данный момент я сфокусировался на iOS, думаю, это будет легче в Android, поскольку все определяется в объединенном с приложением "R" во время выполнения.