Un riquadro descrive le proprietà dell'area che occupa e funge da contenitore dell'app. Utilizzi le configurazioni XML per definire i riquadri, che forniscono un approccio flessibile e senza codice per personalizzare le UI. Per gestire le istanze e gli stati, il sistema tiene traccia dei riquadri definiti.
Elenco dei riquadri
L'UI di sistema carica le definizioni dei relativi riquadri da una risorsa array denominata window_states. Questo array di risorse rimanda ai file XML in cui sono definite le singole configurazioni dei riquadri. Questo approccio centralizzato significa che i riquadri gestiti dall'UI scalabile vengono caricati come previsto e sono pronti per essere utilizzati dal sistema.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Definizione del riquadro
Ogni riquadro nel framework dell'UI scalabile è definito con un tag XML denominato
<TaskPanel> o <DecorPanel>. <TaskPanel> descrive le proprietà di un
contenitore dell'app, mentre <DecorPanel> descrive le proprietà di un contenitore della visualizzazione.
L'UI di sistema carica queste definizioni dei riquadri e li tiene traccia fino al caricamento di un'altra configurazione, ad esempio a causa di una modifica della configurazione dovuta alla rotazione o a una richiesta di sistema esplicita. I tag <TaskPanel> e <DecorPanel> fungono da
componenti fondamentali per creare un'esperienza personalizzata tramite
componenti UI configurabili.
Attributi XML
Il tag <TaskPanel> può contenere questi attributi che puoi utilizzare per definire stati
e transizioni.
| Attributo | Stato | Descrizione |
|---|---|---|
id |
Obbligatorio | Specifica un identificatore univoco per il riquadro. Questo attributo viene utilizzato per
recuperare il riquadro da PanelPool e per gestirne lo stato
all'interno del sistema. |
role |
Obbligatorio | Definisce lo scopo o la funzione del riquadro nel sistema. Il valore può fare riferimento a una risorsa stringa, a un array di stringhe di nomi di componenti o a un ID layout. Ad esempio, può definire attività persistenti che devono sempre essere visualizzate nel riquadro o un layout da espandere. |
defaultVariant |
Facoltativo | Specifica l'ID della variante che il riquadro deve adottare inizialmente al momento del caricamento. Se non specificato, il sistema può utilizzare la prima variante definita variante come predefinita. |
displayId |
Facoltativo | Specifica l'ID del display in cui deve essere visualizzato il riquadro. |
defaultLayer |
Facoltativo | Può specificare un ordine Z predefinito per le varianti del riquadro se le varianti non definiscono esplicitamente un livello. |
controller |
Facoltativo, soggetto a modifiche |
Fa riferimento a una risorsa (in genere un ID XML) che definisce un controller specifico del riquadro, che consente di memorizzare e passare i valori di configurazione ai controller dei riquadri personalizzati. Questi controller devono implementare l'
|
Elementi secondari XML
I tag <TaskPanel> e <DecorPanel> possono includere questi elementi secondari per
definire le caratteristiche e i comportamenti predefiniti.
| Attributo | Descrizione |
|---|---|
<Variant> |
Il tag nidificato descrive una configurazione visiva specifica per il riquadro in un determinato momento. Un riquadro può avere più varianti, ognuna identificata da un ID univoco. Ogni variante definisce proprietà come limiti, visibilità, livello, alfa, raggio dell'angolo e inserti per quella particolare configurazione. Le varianti possono anche ereditare le proprietà da una variante principale. |
<KeyFrameVariant> |
L'estensione di <Variant> consente l'interpolazione delle proprietà visive tra varianti diverse in base a un valore di frazione continuo (da 0 a 1) e viene utilizzata per transizioni fluide e dinamiche, ad esempio durante un'operazione di trascinamento, quando lo stato del riquadro dipende da un input continuo come un importo di trascinamento. |
<Transitions> |
Il tag nidificato contiene una raccolta di Ogni |
Il tag <TaskPanel> può anche includere questi elementi secondari speciali per definire
comportamenti specifici per le attività.
| Attributo | Descrizione |
|---|---|
<Restart> |
Tag nidificato per descrivere una policy di riavvio da applicare quando un
TaskPanel diventa vuoto. Questo tag supporta gli attributi
policy, che può essere impostato su DEFAULT o
LAST, e maxRetry, che specifica il numero di
tentativi di riavvio prima del timeout. |
<TaskBehavior> |
Tag nidificato per descrivere il comportamento dei lanci di attività in questo riquadro. Questo
tag supporta l'attributo newTaskLaunchPolicy, che
configura il comportamento dei nuovi lanci di attività da questo TaskPanel. I valori di configurazione validi per questa policy sono DEFAULT,
REMAIN_IN_SOURCE, o REPARENT_TO_SOURCE. |
Codice campione
<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>