Панель описывает свойства занимаемой ею области и выступает в качестве контейнера приложения. Для определения панелей используются XML-конфигурации, что обеспечивает гибкий и не требующий написания кода подход к настройке пользовательского интерфейса. Для управления экземплярами и состояниями система отслеживает определенные панели.
Список панелей
Системный пользовательский интерфейс загружает определения своих панелей из массива ресурсов с именем window_states . Этот массив ресурсов указывает на XML-файлы, в которых определены конфигурации отдельных панелей. Такой централизованный подход означает, что панели, управляемые Scalable UI, загружаются должным образом и готовы к использованию системой.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Определение панели
Каждая панель в масштабируемой среде пользовательского интерфейса определяется с помощью XML-тега с именем <TaskPanel> или <DecorPanel> . <TaskPanel> описывает свойства контейнера приложения, а <DecorPanel> — свойства контейнера представления. Системный пользовательский интерфейс загружает эти определения панелей и отслеживает их до тех пор, пока не будет загружена другая конфигурация. Например, при изменении конфигурации из-за поворота экрана или явного системного запроса. <TaskPanel> и <DecorPanel> служат основополагающими компонентами для создания персонализированного интерфейса с помощью настраиваемых компонентов пользовательского интерфейса.
XML-атрибуты
Тег <TaskPanel> может содержать следующие атрибуты, которые можно использовать для определения состояний и переходов.
| Атрибут | Статус | Описание |
|---|---|---|
id | Обязательный | Указывает уникальный идентификатор для панели. Этот атрибут используется для получения панели из PanelPool и для управления ее состоянием в системе. |
role | Обязательный | Определяет назначение или функцию панели в системе. Значение может представлять собой строковый ресурс, строковый массив имен компонентов или идентификатор макета. Например, оно может определять постоянные действия, которые всегда должны отображаться на панели, или макет, который необходимо загрузить. |
defaultVariant | Необязательный | Указывает идентификатор варианта, который панель должна изначально использовать при загрузке. Если не указан, система может использовать первый определенный вариант в качестве варианта по умолчанию. |
displayId | Необязательный | Указывает идентификатор дисплея, на котором должна отображаться эта панель. |
defaultLayer | Необязательный | Можно задать порядок отображения по оси Z для вариантов панели, если варианты явно не определяют слой. |
controller | Необязательный, может быть изменено | Ссылается на ресурс (обычно XML-идентификатор), определяющий контроллер, специфичный для панели, что позволяет хранить и передавать значения конфигурации пользовательским контроллерам панелей. Эти контроллеры должны реализовывать интерфейс |
XML дочерние элементы
Теги <TaskPanel> и <DecorPanel> могут включать эти дочерние элементы для определения характеристик и поведения по умолчанию.
| Атрибут | Описание |
|---|---|
<Variant> | Вложенный тег описывает конкретную визуальную конфигурацию панели в любой момент времени. Панель может иметь несколько вариантов, каждый из которых идентифицируется уникальным идентификатором. Каждый вариант определяет такие свойства, как границы, видимость, слой, прозрачность, радиус скругления углов и отступы для данной конкретной конфигурации. Варианты также могут наследовать свойства от родительского варианта. |
<KeyFrameVariant> | Расширение <Variant> позволяет интерполировать визуальные свойства между различными вариантами на основе непрерывного дробного значения (от 0 до 1) и используется для плавных и динамичных переходов, например, во время операции перетаскивания, когда состояние панели зависит от непрерывного входного параметра, такого как величина перетаскивания. |
<Transitions> | Вложенный тег содержит набор определений Каждый параметр |
В тег <TaskPanel> также можно включать эти специальные дочерние элементы для определения поведения, специфичного для задач.
| Атрибут | Описание |
|---|---|
<Restart> | Вложенный тег для описания политики перезапуска, применяемой при опустошении панели задач. Этот тег поддерживает атрибуты policy , который может быть установлен в значение DEFAULT или LAST , и maxRetry , указывающий, сколько раз будет предпринята попытка перезапуска до истечения таймаута. |
<TaskBehavior> | Вложенный тег для описания поведения запуска задач на этой панели. Этот тег поддерживает атрибут newTaskLaunchPolicy , который настраивает поведение запуска новых задач из этой панели задач. Допустимые значения конфигурации для этой политики: DEFAULT , REMAIN_IN_SOURCE или REPARENT_TO_SOURCE . |
Пример кода
<TaskPanel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</TaskPanel>