Un pannello descrive le proprietà dell'area che occupa e funge da contenitore dell'app. Utilizzi le configurazioni XML per definire i pannelli, che forniscono un approccio flessibile e senza codice per personalizzare le UI. Per gestire le istanze e gli stati, il sistema tiene traccia dei pannelli definiti.
Elenco dei pannelli
L'interfaccia utente di sistema carica le definizioni dei suoi pannelli da una risorsa array denominata
window_states
. Questo array di risorse punta ai file XML in cui
sono definite le singole configurazioni del pannello. Questo approccio centralizzato significa che i riquadri gestiti da Scalable UI vengono caricati come previsto e sono pronti per l'uso da parte del 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 pannello
Ogni riquadro nel framework dell'interfaccia utente scalabile è definito con un tag XML denominato
<TaskPanel>
, che descrive le proprietà di un contenitore di app. L'interfaccia utente del sistema
carica queste definizioni del pannello e tiene traccia dei pannelli finché non viene caricata
un'altra configurazione.
Ad esempio, a causa di una modifica alla configurazione dovuta alla rotazione o a una richiesta
esplicita del sistema. <TaskPanel>
è un componente fondamentale 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 pannello da PanelPool e per gestirne lo stato
all'interno del sistema. |
role |
Obbligatorio | Definisce lo scopo o la funzione del pannello 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 essere sempre visualizzate nel pannello o un layout da espandere. |
defaultVariant |
Facoltativo | Specifica l'ID della variante che il pannello deve adottare inizialmente al momento del caricamento. Se non specificato, il sistema può utilizzare la prima variante definita come predefinita. |
displayId |
Facoltativo | Specifica l'ID del display in cui deve essere visualizzato il pannello. |
defaultLayer |
Facoltativo | Può specificare un ordine Z predefinito per le varianti del pannello se le varianti non definiscono esplicitamente un livello. |
controller |
Facoltativo, soggetto a modifiche |
Fa riferimento a una risorsa (di solito un ID XML) che definisce un controller specifico del pannello, che consente di archiviare e passare i valori di configurazione ai controller del pannello personalizzati. Questi controller devono implementare l'interfaccia
|
Elementi secondari XML
Il tag <TaskPanel>
può includere questi attributi 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 pannello può avere più varianti, ognuna identificata da un ID univoco. Ogni variante definisce proprietà come limiti, visibilità, livello, alfa, raggio dell'angolo e margini interni 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 le diverse varianti 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 pannello
dipende da un input continuo come un importo di trascinamento. |
<Transitions> |
Il tag nidificato contiene una raccolta di definizioni Ogni |
Codice di esempio
<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>