Ein Bereich beschreibt die Eigenschaften des Bereichs, den er einnimmt, und fungiert als App-Container. Mit XML-Konfigurationen definieren Sie Bereiche, die eine flexible und codefreie Möglichkeit zum Anpassen von Benutzeroberflächen bieten. Das System verfolgt definierte Bereiche, um Instanzen und Status zu verwalten.
Bereichsliste
Die System-UI lädt die Definitionen ihrer Bereiche aus einer Array-Ressource mit dem Namen window_states. Dieses Ressourcen-Array verweist auf die XML-Dateien, in denen die einzelnen Panelkonfigurationen definiert sind. Durch diesen zentralen Ansatz werden von Scalable UI verwaltete Bereiche wie vorgesehen geladen und können vom System verwendet werden.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Bereichsdefinition
Jedes Feld im Scalable UI-Framework wird mit einem XML-Tag namens <TaskPanel> oder <DecorPanel> definiert. <TaskPanel> beschreibt die Attribute eines App-Containers, während <DecorPanel> die Attribute eines Ansichtscontainers beschreibt.
Die System-UI lädt diese Felddefinitionen und verfolgt die Felder, bis eine andere Konfiguration geladen wird. Das kann z. B. durch eine Konfigurationsänderung aufgrund einer Drehung oder durch eine explizite Systemanfrage geschehen. Die <TaskPanel> und <DecorPanel> dienen als grundlegende Komponenten für die Entwicklung einer benutzerdefinierten Umgebung mit konfigurierbaren UI-Komponenten.
XML-Attribute
Das <TaskPanel>-Tag kann die folgenden Attribute enthalten, mit denen Sie Status und Übergänge definieren können.
| Attribut | Status | Beschreibung |
|---|---|---|
id |
Erforderlich | Gibt eine eindeutige Kennung für den Bereich an. Dieses Attribut wird verwendet, um das Steuerfeld aus PanelPool abzurufen und seinen Status im System zu verwalten. |
role |
Erforderlich | Definiert den Zweck oder die Funktion des Bereichs im System. Der Wert kann auf eine String-Ressource, ein String-Array mit Komponentennamen oder eine Layout-ID verweisen. Damit können beispielsweise persistente Aktivitäten definiert werden, die immer im Bereich angezeigt werden sollen, oder ein Layout, das eingefügt werden soll. |
defaultVariant |
Optional | Gibt die ID der Variante an, die das Feld beim Laden anfänglich übernehmen soll. Wenn keine Angabe erfolgt, kann das System die erste definierte Variante als Standard verwenden. |
displayId |
Optional | Gibt die ID des Displays an, auf dem der Bereich angezeigt werden soll. |
defaultLayer |
Optional | Sie können eine Standard-Z-Reihenfolge für die Varianten des Bereichs angeben, wenn für die Varianten keine Ebene explizit definiert ist. |
controller |
Optional, Änderungen vorbehalten |
Verweist auf eine Ressource (in der Regel eine XML-ID), die einen panelspezifischen Controller definiert, mit dem Konfigurationswerte in benutzerdefinierten Panel-Controllern gespeichert und an diese übergeben werden können. Diese Controller sollten die |
Untergeordnete XML-Elemente
Die Tags <TaskPanel> und <DecorPanel> können diese untergeordneten Elemente enthalten, um Merkmale und Standardverhalten zu definieren.
| Attribut | Beschreibung |
|---|---|
<Variant> |
Ein verschachteltes Tag beschreibt eine bestimmte visuelle Konfiguration für das Feld zu einem bestimmten Zeitpunkt. Ein Bereich kann mehrere Varianten haben, die jeweils durch eine eindeutige ID gekennzeichnet sind. Jede Variante definiert Eigenschaften wie Grenzen, Sichtbarkeit, Ebene, Alpha, Eckenradius und Insets für die jeweilige Konfiguration. Varianten können auch Attribute von einer übergeordneten Variante übernehmen. |
<KeyFrameVariant> |
Die Erweiterung von <Variant> ermöglicht die Interpolation visueller Eigenschaften zwischen verschiedenen Varianten basierend auf einem kontinuierlichen Bruchteilwert (0 bis 1) und wird für flüssige und dynamische Übergänge verwendet, z. B. während eines Ziehvorgangs, wenn der Status des Bereichs von einer kontinuierlichen Eingabe wie einem Ziehbetrag abhängt. |
<Transitions> |
Das verschachtelte Tag enthält eine Sammlung von Jede |
Das <TaskPanel>-Tag kann auch die folgenden speziellen untergeordneten Elemente enthalten, um aufgabenspezifische Verhaltensweisen zu definieren.
| Attribut | Beschreibung |
|---|---|
<Restart> |
Verschachteltes Tag zur Beschreibung einer Neustartrichtlinie, die angewendet werden soll, wenn ein TaskPanel leer wird. Dieses Tag unterstützt die Attribute policy, das auf DEFAULT oder LAST festgelegt werden kann, und maxRetry, das angibt, wie oft der Neustart versucht wird, bevor ein Zeitlimit überschritten wird. |
<TaskBehavior> |
Verschachteltes Tag zur Beschreibung des Verhaltens von Aufgabenstarts in diesem Bereich. Dieses Tag unterstützt das Attribut newTaskLaunchPolicy, mit dem das Verhalten neuer Aufgabenstarts über dieses TaskPanel konfiguriert wird. Gültige Konfigurationswerte für diese Richtlinie sind DEFAULT, REMAIN_IN_SOURCE oder REPARENT_TO_SOURCE. |
Beispielcode
<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>