Дополнение к основной статье //infostart.ru/1c/tools/1153616/
Релиз несколько необычен и нуждается больше в видео, чем в текстовом описании, поэтому я записал видео.
В статье просто перечислю правила и плюсы/минусы этого подхода.
Кстати, этот подход в разработке не замена, а альтернатива – кому-то он нужен, а кому-то – абсолютно не нужен. Нужен он скорее в более сложных случаях, а в обычных – проще обойтись обычным конструктором.
Плюсы:
- Доступны буквально все элементы AndroidSDK, которые есть. Т.е. те виджеты, которых нет в симпле – их можно вытащить на экран и использовать
- Доступно больше видов контейнеров – например ConstraintLayout соответственно стало расположение элементов (разметка) – более гибкое
- Визуальных редактор – видишь, что делаешь, плюс можно посмотреть на разных виртуальных устройствах сразу
Минусы:
- Поддерживаются пока не все свойства. Решение: если что-то не читается на уровне разметки, то это можно решить – так: перехватить элемент из кода getView и далее работать со всеми его свойствами. Подробнее тут: //infostart.ru/1c/articles/1760354/
- Возможны ошибки разметки, которые вызовут не отрисовку всего экрана либо отрисовку, но с неправильным расположением. Будет выведена ошибка. Стандартный подход через конструктор выводит все гарантированно, тут – зависит уже от разработчика. Вообще, надо сказать, что чтение xml – официально (ответ Гугл) – неосуществимо. Поэтому я так долго писал этот модуль. И могу сказать, что на 100% он никогда не будет все воспринимать как Андроид.
Правила:
- Основное правило: у всех элементов должен быть id. Id – это переменная в Симпл. В симпле она не обязательна для контейнеров, например. Тут – обязательна.
- Заполнение элементов через @ - для свойств типа text (у надписей, кнопок)
- Поддерживается Awesome так же, как в симпле
- Поддержка картинок – так же, как в симпле – через ~,^ и base64
- Можно использовать стандартные (json) – списки: в xml определить RecyclerView и передать ему переменную с json- разметкой – карточек, таблицы
- Можно определить разметку элемента списка тоже в виде xml
- На все виды элементов симпл перехватывает их основные события – нажатия, долгие нажатия, изменение текста и т.д.
Примеры к релизу, как всегда, в основной статье //infostart.ru/1c/tools/1153616/
Конечно же, Телеграм-канал проекта, в котором масса всего полезного: https://t.me/devsimpleui
И видео: