DroidScript
DroidScript
разработка мобильных приложений

Продолжение знакомства

DroidScript  
05.04.2017

На предыдущем занятии мы познакомились с простым приложением и выяснили, что для отображения элементов на экране их необходимо cкомпоновать (добавить компоновщикам), а компоновщики отобразить на экране (добавить объекту приложения app). А можно элементы добавить не компоновщику, а объекту приложения? Нет. Специфика построения интерфейсов мобильных приложений состоит в том, что видимые элементы управления в большинстве случаев имеют относительное, а не абсолютное позиционирование, как это изначально было характерно для десктопной разработки. В мобильной среде размеры экранов и разрешения различны. На одних экранах интерфейс с абсолютным позиционированием будет смотреться хорошо, а на других будет искажен, плохо читаем или частично невидим. Во избежание этого основным способом размещения элементов в мобильной среде является относительное.

Элементы - это независимые объекты, которые ничего не знают о присутствии рядом с ними других элементов и что-то должно их сгруппировать, упорядочить и выровнить так, чтобы интерфейс смотрелся хорошо на экранах разных мобильных устройств. Для этого и предназначены компоновщики. Элементы могут быть добавлены только компоновщикам, а компоновщики могут добавляться как другим компоновщикам, так и объекту приложения.

Компоновщики используются для отображения объектов, которые имеют визуальное представление. Например, кнопка имеет визуальное представление, а архиватор - нет. Для простоты видимые объекты называют элементами, представлениями, видимостями, виджетами.

Порядок создания объектов не важен, в отличие от порядка их компоновки. Объекты, которые добавляются компоновщику или объекту приложения позже будут перекрывать объекты, добавленные ранее. Порядком отображения объектов можно управлять, указав в методе AddChild второй параметр - порядковый номер, например:

lay.AddChild( txt, 2 );

Можно вывести элемент компоновщика на передний план при помощи метода компоновщика ChildToFront:

lay.ChildToFront( txt );

Элементы можно не только добавлять компоновщикам, но и удалять из них при помощи метода компоновщика RemoveChild, в результате чего элемент перестаёт отображаться:

lay.RemoveChild( txt );

Это действие используется для смены компоновщика: если элемент уже принадлежит одному компоновщику, то при добавлении его другому компоновщику нечего не произойдёт, а в окне отладки появится предупреждение.

DroidScript  
© 2016-2022  Александр Страшко