DroidScript
DroidScript
учимся и разрабатываем

Где в App Inventor настраивать свойства компонентов, в дизайнере или редакторе блоков?

23.05.2017

Рассмотрим пример одновременного изменения ширины нескольких кнопок:

  • Создайте новый проект и на рабочее поле добавьте три кнопки. По умолчанию они имеют имена Button1, Button2 и Button3. Работать с такими именами неудобно, так как они не дают информации о том, что делает каждая кнопка. Переименуем их в btnNew, btnOpen и btnSave. Использование префикса btn помогает узнать тип компонента - button (кнопка).
  • Перейдите в редактор блоков и создайте список кнопок. Это можно сделать путём перетаскивания блоков мышью или добавлением блоков при помощи клавиатуры:
    • Щелкните мышью на области просмотра Viewer
    • Нажмите клавишу Enter. В левом верхнем углу области появится поле ввода
    • Начните набирать в нём строку названия блока на языке интерфейса App Inventor. Если язык интерфейса английский, то набираем make, если русский - создать. Появится выпадающий список, в котором курсорными клавишами нужно перейти к опции make a list/создать список и нажать клавишу Enter. В поле появится блок списка
    • Снова нажмите Enter, введите имя кнопки btnNew, выберите её в выпадающем списке и нажмите Enter. Блок данной кнопки добавится к списку
    • Повторите последнее действие для оставшихся кнопок
  • Создайте процедуру, которая в цикле присвоит всем объектам списка новое значение ширины. Для этого нужно добавить на рабочее поле блок процедуры, переименовать его в setWidth и вызвать из блока щелчка по кнопке btnNew

Алгоритм для изменения ширины кнопок показан на рис. 1.

Изменение ширины кнопок

Рис. 1. Изменение ширины кнопок.

Теперь зададим кнопкам надписи. Для этого воспользуемся строкой CSV.

Изменение текста надписи на кнопках

Рис. 2. Изменение текста надписи на кнопках.

Здесь используется два списка и нужно отследить за тем, чтобы текст каждой надписи был присвоен нужной кнопке. Компоненты и надписи можно хранить и в одном списке, но это усложнит алгоритм.

Из этих примеров видно, что настраивать свойства группы компонентов проще программным образом в редакторе блоков. Например, одним щелчком мыши можно изменить размер шрифта для всех компонентов приложения. Но и здесь есть одно неудобство. App Inventor не позволяет динамически получить список компонентов, из-за чего на этапе инициализации придётся вручную добавлять каждый блок компонента в список.

Для более удобной работы компоненты разных типов можно группировать в отдельных списках, а затем на этапе инициализации собирать из них один большой список.

© 2016-2024 
actech