Основы конструктора Xamarin.Android

В этом разделе описываются функции конструктора Xamarin.Android, сведения о запуске конструктора, описание области конструктора и сведения о том, как использовать панель свойств для редактирования свойств мини-приложения.

Запуск конструктора

Конструктор запускается автоматически при создании макета или его можно запустить, дважды щелкнув существующий файл макета. Например, дважды щелкнув activity_main.axml в папке "Макет ресурсов">, конструктор будет загружен, как показано на этом снимке экрана:

Designer screen in Visual Studio

Аналогичным образом можно добавить новый макет, щелкнув правой кнопкой мыши папку макета в Обозреватель решений и выбрав "Добавить > новый элемент". > Макет Android:

Add New Item dialog

При этом создается файл макета AXML и загружается в конструктор.

Совет

Новые выпуски Visual Studio поддерживают открытие XML-файлов в Android Designer.

Android Designer поддерживает как файлы AXML, так и XML.

Функции конструктора

Конструктор состоит из нескольких разделов, поддерживающих различные функции, как показано на следующем снимке экрана:

Diagram of Designer panes

При изменении макета в конструкторе используются следующие функции для создания и формирования макета:

  • Конструктор Surface — упрощает визуальное построение пользовательского интерфейса, предоставляя редактируемое представление о том, как макет будет отображаться на устройстве. Область конструктора отображается в области конструктора (с панелью инструментов конструктора, расположенной над ним).

  • Область источника — предоставляет представление базового источника XML, соответствующего конструктору, представленному на поверхности конструктора.

  • Панель инструментов конструктора — отображает список селекторов: устройства, версии, темы, конфигурации макета и параметров панели действий. Панель инструментов конструктора также включает значки для запуска редактора тем и включения сетки конструктора материалов.

  • Панель элементов — предоставляет список мини-приложений и макетов, которые можно перетащить в область конструктора.

  • Окно свойств — выводит список свойств выбранного мини-приложения для просмотра и редактирования.

  • Структура документа — отображает дерево мини-приложений, составляющих макет. Вы можете щелкнуть элемент в дереве, чтобы его можно было выбрать на поверхности конструктора. Кроме того, щелкнув элемент в дереве, загружает свойства элемента в окно "Свойства ".

Область конструктора

Конструктор позволяет перетаскивать мини-приложения из панели элементов в область конструктора. При взаимодействии с мини-приложениями в конструкторе (путем добавления новых мини-приложений или изменения положения существующих), вертикальные и горизонтальные линии отображаются, чтобы пометить доступные точки вставки. В следующем примере новое Button мини-приложение перетаскивается в Область конструктора:

Example insertion lines on Design Surface

Кроме того, можно скопировать мини-приложения: можно использовать копирование и вставку для копирования мини-приложения или перетаскивать существующее мини-приложение при нажатии клавиши CTRL .

Панель инструментов конструктора

Панель инструментов конструктора (расположенная над областью конструктора) представляет селекторы конфигурации и меню инструментов:

Diagram of Designer Toolbar

Панель инструментов конструктора предоставляет доступ к следующим функциям:

  • Альтернативный селектор макета— позволяет выбрать разные версии макета.

  • Селектор устройств — определяет набор квалификаторов (таких как размер экрана, разрешение и доступность клавиатуры), связанный с определенным устройством. Вы также можете добавлять и удалять новые устройства.

  • Селектор версий Android — версия Android, предназначенная для макета. Конструктор отрисовывает макет в соответствии с выбранной версией Android.

  • Селектор темы— выбирает тему пользовательского интерфейса для макета.

  • Селектор конфигурации— выбирает конфигурацию устройства, например книжную или альбомную.

  • Параметры квалификатора ресурсов— открывает диалоговое окно, которое содержит раскрывающиеся меню для выбора параметров языка, режима пользовательского интерфейса, ночного режима и круглого экрана.

  • Панель действий Параметры— настраивает параметры панели действий для макета.

  • Редактор тем — открывает редактор тем, что позволяет настраивать элементы выбранной темы.

  • Сетка конструктора материалов— включает или отключает сетку конструктора материалов. В раскрывающемся меню рядом с сеткой конструктора материалов открывается диалоговое окно, позволяющее настроить сетку.

Каждая из этих функций подробно описана в следующих разделах:

Команды контекстного меню

Контекстное меню доступно как в области конструктора, так и в структуре документа. В этом меню отображаются команды, доступные для выбранного мини-приложения и его контейнера, что упрощает выполнение операций с контейнерами (которые не всегда легко выбрать в Конструкторе). Ниже приведен пример контекстного меню:

Example context menu when right-clicking the Design Surface

В этом примере щелкните правой TextView кнопкой мыши контекстное меню, которое предоставляет несколько вариантов:

  • LinearLayout — открывает подменю для редактирования LinearLayout родительского TextViewэлемента.

  • Операции удаления, копирования и вырезания , которые применяются к правой кнопке мыши TextView.

Элементы управления масштабированием

Surface Design поддерживает масштабирование с помощью нескольких элементов управления, как показано ниже.

Diagram of the Design Surface zoom controls

Эти элементы управления упрощают просмотр определенных областей пользовательского интерфейса в конструкторе:

  • Выделение контейнеров — выделяет контейнеры на поверхности конструктора, чтобы их было проще находить при увеличении и увеличении масштаба.

  • Обычный размер — отрисовывает пиксель макета для пикселя, чтобы увидеть, как макет будет смотреть на разрешение выбранного устройства.

  • Подходит к окну — задает уровень масштабирования, чтобы весь макет был виден на поверхности конструктора.

  • Увеличение — увеличивается постепенно с каждым щелчком, увеличивая макет.

  • Увеличение масштаба — увеличивается постепенно с каждым щелчком, что делает макет меньше на поверхности конструктора.

Обратите внимание, что выбранный параметр масштабирования не влияет на пользовательский интерфейс приложения во время выполнения.

Переключение между областями конструктора и источника

В центральной полосе между панелями конструктора и источника есть несколько кнопок, которые используются для изменения отображения панелей конструктора и источника :

Pane display button locations

Эти кнопки выполняют следующие действия:

  • Конструктор — эта самая верхняя кнопка, конструктор, выбирает область конструктора. При нажатии этой кнопки включены панели элементов и свойств, а панель инструментов текстового редактора не отображается. При нажатии кнопки "Свернуть" (см. ниже), область конструктора отображается только без области "Источник".

  • Области переключения— эта кнопка (похожая на две противоположные стрелки ) переключает области конструктора и источника , чтобы область "Источник " была слева, а область конструктора находится справа. Щелкнув его снова, переключение этих панелей обратно в исходное расположение.

  • Источник — эта кнопка (которая похожа на две противоположные угловые скобки) выбирает область "Источник". При нажатии этой кнопки панели элементов и свойств отключены, а панель инструментов текстового редактора отображается в верхней части Visual Studio. При нажатии кнопки "Свернуть" (см. ниже), при нажатии кнопки "Источник" отображается область "Источник" вместо области конструктора.

  • Вертикальное разделение — эта кнопка (которая напоминает вертикальную полосу), отображает панели конструктора и источника параллельно. Это расположение по умолчанию.

  • Горизонтальное разделение — эта кнопка (которая похожа на горизонтальную панель), отображает панель конструктора над областью источника . Области переключения можно щелкнуть, чтобы поместить область источника над областью конструктора.

  • Сворачивание области — эта кнопка (которая похожа на две угловые квадратные скобки правой точки) "свернуть" двухугольное отображение конструктора и источника в одном представлении одной из этих областей. Эта кнопка становится кнопкой "Развернуть область " (похожей на две угловые квадратные скобки слева), которую можно щелкнуть, чтобы вернуть представление обратно в режим отображения двойной панели (конструктор и источник).

При щелчке области сворачивания отображается только область конструктора . Однако можно нажать кнопку "Источник", чтобы просмотреть только область "Источник". Нажмите кнопку конструктора еще раз, чтобы вернуться в область конструктора.

Область источника

На панели "Источник" отображается источник XML, базовый дизайн, показанный на поверхности конструктора. Так как оба представления доступны одновременно, можно создать дизайн пользовательского интерфейса, отправляясь назад и вперед между визуальным представлением конструктора и базовым источником XML для разработки:

Example XML source in Source Pane

Изменения, внесенные в источник XML, немедленно отображаются на поверхности конструктора. Изменения, внесенные в область конструктора, вызывают соответствующее обновление источника XML в области "Источник". При внесении изменений в XML на панели "Источник " функции автозаполнения и IntelliSense доступны для ускорения разработки пользовательского интерфейса на основе XML, как описано далее.

Чтобы упростить навигацию при работе с длинными XML-файлами, область "Источник " поддерживает полосу прокрутки Visual Studio (как показано справа на предыдущем снимке экрана). Дополнительные сведения о полосе прокрутки см. в разделе "Отслеживание кода" путем настройки полосы прокрутки.

Автозавершение

При вводе имени атрибута для мини-приложения можно нажать клавиши CTRL+SPACE , чтобы просмотреть список возможных завершений. Например, после ввода в следующем примере (после ввода android:layклавиш CTRL+SPACE) представлен следующий список:

Autocompletion of layout attribute

Нажмите клавишу ВВОД , чтобы принять первое указанное завершение, или используйте клавиши со стрелками, чтобы прокрутить нужное завершение и нажмите клавишу ВВОД. Кроме того, можно использовать мышь для прокрутки и щелчка нужного завершения.

IntelliSense

После ввода нового атрибута для мини-приложения и начала назначать его значение, IntelliSense появится после ввода символа триггера и предоставляет список допустимых значений, используемых для этого атрибута. Например, после ввода android:layout_width первого двойного кавычка в следующем примере селектор автозаполнения появится, чтобы указать список допустимых вариантов для этой ширины:

IntelliSense example for layout width

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

Область свойств

Конструктор поддерживает редактирование свойств мини-приложения в области свойств :

Screenshot of the Properties window

Свойства, перечисленные в области свойств , изменяются в зависимости от того, какое мини-приложение выбрано в области конструктора.

Значения по умолчанию

Свойства большинства мини-приложений будут пустыми в окне свойств , так как их значения наследуются от выбранной темы Android. В окне "Свойства " будут отображаться только значения, явно заданные для выбранного мини-приложения. Они не будут отображать значения, унаследованные от темы.

Ссылки на ресурсы

Некоторые свойства могут ссылаться на ресурсы, определенные в файлах, отличных от файла макета .axml . Наиболее распространенными случаями этого типа являются string ресурсы и drawable ресурсы. Однако ссылки также можно использовать для других ресурсов, таких как Boolean значения и измерения. Если свойство поддерживает ссылки на ресурсы, значок обзора (квадрат) отображается рядом с текстовой записью для свойства. Эта кнопка открывает селектор ресурсов при щелчке.

Например, на следующем снимке экрана показаны параметры, доступные при щелчке темного квадрата справа от текстового поля мини-приложения Text в окне свойств :

Example list of text options

При нажатии кнопки "Ресурс" отображается диалоговое окно "Выбор ресурса ":

Example Resources screenshot with several resources listed

В этом списке можно выбрать текстовый ресурс, используемый для этого мини-приложения, вместо жесткого написания текста в области свойств . В следующем примере показан селектор ресурсов для Src свойства объекта ImageView:

Resource selector listing icon resource for an ImageView

Щелкнув пустой квадрат справа от Src свойства, откроется диалоговое окно "Выбор ресурса " со списком ресурсов, начиная от цветов (как показано выше) до рисования.

Ссылки на логические свойства

Логические свойства обычно выбираются как проверка метки рядом со свойством в окно свойств. Можно назначить true или false значение, проверка или отменить проверка в этом поле проверка или выбрать ссылку на свойство, щелкнув квадрат с темной заливкой справа от свойства. В следующем примере текст изменяется на все крышки, щелкнув ссылку на логическое свойство Text All Caps, связанное с выбранным:TextView

Example of setting boolean properties

Встроенные свойства редактирования

Android Designer поддерживает прямое редактирование определенных свойств в Области конструктора (поэтому вам не нужно искать эти свойства в списке свойств). Свойства, которые могут быть непосредственно изменены, включают текст, поле и размер.

Текст

Текстовые свойства некоторых мини-приложений (напримерButton, иTextView) можно редактировать непосредственно в области конструктора. Дважды щелкнув мини-приложение, он будет помещен в режим редактирования, как показано ниже:

Text resource for the hello string

Можно ввести новое текстовое значение или ввести новую строку ресурса. В следующем примере @string/hello ресурс заменяется текстом: CLICK THIS BUTTON

Shift + Enter to automatically link text to a new resource

Это изменение хранится в свойстве мини-приложения text ; оно не изменяет значение, назначенное ресурсу @string/hello . При нажатии клавиши в новой текстовой строке можно нажать клавиши SHIFT + ВВОД, чтобы автоматически связать введенный текст с новым ресурсом.

поле

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

При первом щелчке мини-приложения отображаются дескрипторы полей. При перемещении мыши на один из дескрипторов конструктор отображает свойство, которое будет изменен дескриптор (как показано ниже для layout_marginLeft свойства):

Screenshot showing margin handles in the Designer

Если поле уже задано, отображаются пунктирные линии, указывающие пространство, которое занимает поле:

Example of dotted lines marking space around a button

Размер

Как упоминание ранее, вы можете переключиться в режим редактирования размера, щелкнув мини-приложение, пока он уже выбран. Щелкните треугольный дескриптор, чтобы задать размер указанного измерения wrap_content:

Wrap Content and Resize handles

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

Если для значения размера задано значение "Обертывать содержимое", конструктор отображает треугольный дескриптор, указывающий в противоположном направлении для изменения размера match_parent:

Match parent handle

Щелкнув маркер match Parent , восстанавливает размер в этом измерении, чтобы он совпадал с родительским мини-приложением.

Кроме того, можно перетащить дескриптор кругового изменения размера (как показано на снимках экрана выше), чтобы изменить размер мини-приложения на произвольное dp значение. При этом для этого отображаются оба дескриптора содержимого и сопоставления родительских дескрипторов:

Circular resize handles

Не все контейнеры позволяют редактировать Size мини-приложение. Например, обратите внимание, что на снимке экрана ниже с LinearLayout выбранным, маркеры изменения размера не отображаются:

No resize handles

Структура документа

Структура документа отображает иерархию мини-приложений макета. В следующем примере выбрано LinearLayout содержащее мини-приложение:

Document Outline example

Структура выбранного мини-приложения (в данном случае ) LinearLayoutтакже выделена в области конструктора. Выбранное мини-приложение в структуре документа остается синхронизированным с его коллегой в Области конструктора. Это полезно для выбора групп представлений, которые не всегда легко выбрать на поверхности конструктора.

Структура документа поддерживает копирование и вставку или перетаскивание. Перетаскивание поддерживается из структурыдокумента в область конструктора, а также из области конструктора в структуру документа. Кроме того, при щелчке правой кнопкой мыши элемент в структуре документа отображается контекстное меню для этого элемента (то же контекстное меню, которое отображается при щелчке правой кнопкой мыши этого же мини-приложения в Области конструктора).