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>
definiert, das die Eigenschaften eines App-Containers beschreibt. Die System-UI lädt diese Paneldefinitionen und verfolgt die Panels, bis eine andere Konfiguration geladen wird.
Das kann beispielsweise durch eine Konfigurationsänderung aufgrund einer Drehung oder einer expliziten Systemanfrage geschehen. Die <TaskPanel>
ist eine grundlegende Komponente, mit der Sie über konfigurierbare UI-Komponenten eine benutzerdefinierte Umgebung erstellen können.
XML-Attribute
Das <TaskPanel>
-Tag kann die folgenden Attribute enthalten, mit denen Sie Status und Übergänge definieren können.
Attribut | Status | Beschreibung |
---|---|---|
id |
Obligatorisch | Gibt eine eindeutige Kennung für den Bereich an. Mit diesem Attribut wird das Steuerfeld aus PanelPool abgerufen und sein Status im System verwaltet. |
role |
Obligatorisch | 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 aufgebläht werden soll. |
defaultVariant |
Optional | Gibt die ID der Variante an, die das Feld beim Laden anfangs ü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 das Feld 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 gespeichert und an benutzerdefinierte Panel-Controller übergeben werden können. Diese Controller sollten die |
Untergeordnete XML-Elemente
Das <TaskPanel>
-Tag kann diese Attribute 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). Sie 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> |
Ein verschachteltes Tag enthält eine Sammlung von Jede |
Beispielcode
<Panel 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>
</Panel>