Можно ли удаленно обновлять дизайн лайотов?

Рейтинг: 0Ответов: 1Опубликовано: 23.01.2023

Возможно ли удаленно менять дизайн layout'a или вообще подгружать верстку с сервера? Может уже кто-то создавал такую тему, но я порывшись в интернете ничего не нашел)

Ответы

▲ 1Принят

Можно, но воспользоваться встроенным механизмом inflate не получится, все view придется создавать вручную. В качестве готовой реализации можно взять DivKit от Яндекса.

Если готовые решения не подходят, то можно все сделать самому. Все подклассы View можно создать в рантайме используя один из конструкторов. Лучше использовать конструктор принимающий только Context, но если он не доступен, то можно передать null/0 в качестве остальных аргументов. После этого надо будет добавить созданные view в иерархию экрана используя addView.


Встроенным inflate нельзя воспользоваться по довольно интересной причине: aapt делает предпроцессинг xml-файлов и в apk попадают уже обработанные бинарные версии исходных файлов. LayoutInflater умеет работать только с такими бинарными данными и подать ему обычный xml-файл нельзя.