Un panel describe las propiedades del área que ocupa y actúa como un contenedor de la app. Usas configuraciones XML para definir paneles, que proporcionan un enfoque flexible y sin código para personalizar las IUs. Para administrar instancias y estados, el sistema realiza un seguimiento de los paneles definidos.
Lista de paneles
La IU del sistema carga las definiciones de sus paneles desde un recurso de array llamado window_states. Este array de recursos apunta a los archivos XML, en los que se definen las configuraciones de paneles individuales. Este enfoque centralizado significa que los paneles administrados por la IU escalable se cargan según lo previsto y están listos para que el sistema los use.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Definición de panel
Cada panel en el framework de IU escalable se define con una etiqueta XML llamada
<TaskPanel> o <DecorPanel>. <TaskPanel> describe las propiedades de un
contenedor de la app, mientras que <DecorPanel> describe las propiedades de un contenedor de vista.
La IU del sistema carga estas definiciones de panel y realiza un seguimiento de los paneles hasta que se carga otra configuración. Por ejemplo, debido a un cambio de configuración debido a la rotación o a una solicitud explícita del sistema. Los elementos <TaskPanel> y <DecorPanel> sirven como
componentes fundamentales para crear una experiencia personalizada a través de
componentes de IU configurables.
Atributos XML
La etiqueta <TaskPanel> puede contener estos atributos que puedes usar para definir estados
y transiciones.
| Atributo | Estado | Descripción |
|---|---|---|
id |
Obligatorio | Especifica un identificador único para el panel. Este atributo se usa para
recuperar el panel de PanelPool y administrar su estado
dentro del sistema. |
role |
Obligatorio | Define el propósito o la función del panel en el sistema. El valor puede hacer referencia a un recurso de cadenas, un array de cadenas de nombres de componentes o un ID de diseño. Por ejemplo, puede definir actividades persistentes que siempre se deben mostrar en el panel o un diseño que se debe aumentar. |
defaultVariant |
Opcional | Especifica el ID de la variante que el panel debe adoptar inicialmente cuando se carga. Si no se especifica, el sistema puede usar la primera variante definida como predeterminada. |
displayId |
Opcional | Especifica el ID de la pantalla en la que se debe mostrar el panel. |
defaultLayer |
Opcional | Puede especificar un orden Z predeterminado para las variantes del panel si las variantes no definen explícitamente una capa. |
controller |
Opcional, sujeto a cambios |
Hace referencia a un recurso (por lo general, un ID de XML) que define un controlador específico del panel , lo que permite almacenar y pasar valores de configuración a los controladores de panel personalizados. Estos controladores deben implementar la
|
Elementos secundarios XML
Las etiquetas <TaskPanel> y <DecorPanel> pueden incluir estos elementos secundarios para
definir características y comportamientos predeterminados.
| Atributo | Descripción |
|---|---|
<Variant> |
La etiqueta anidada describe una configuración visual específica para el panel en cualquier momento. Un panel puede tener varias variantes, cada una identificada por un ID único. Cada variante define propiedades como límites, visibilidad, capa, alfa, radio de esquina e inserciones para esa configuración en particular. Las variantes también pueden heredar propiedades de una variante superior. |
<KeyFrameVariant> |
La extensión de <Variant> permite la interpolación de propiedades visuales entre diferentes variantes en función de un valor de fracción continua (de 0 a 1) y se usa para transiciones fluidas y dinámicas, como durante una operación de arrastre, cuando el estado del panel depende de una entrada continua, como una cantidad de arrastre. |
<Transitions> |
La etiqueta anidada contiene una colección de Cada |
La etiqueta <TaskPanel> también puede incluir estos elementos secundarios especiales para definir
comportamientos específicos de las tareas.
| Atributo | Descripción |
|---|---|
<Restart> |
Etiqueta anidada para describir una política de reinicio que se aplicará cuando un
TaskPanel quede vacío. Esta etiqueta admite los atributos
policy, que se pueden configurar como DEFAULT o
LAST, y maxRetry, que especifica cuántas
veces se intentará el reinicio antes de que se agote el tiempo de espera. |
<TaskBehavior> |
Etiqueta anidada para describir el comportamiento de los lanzamientos de tareas en este panel. Esta
etiqueta admite el atributo newTaskLaunchPolicy, que
configura el comportamiento de los lanzamientos de tareas nuevas desde este TaskPanel. Los valores de configuración válidos para esta política son DEFAULT,
REMAIN_IN_SOURCE, o REPARENT_TO_SOURCE. |
Código de muestra
<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>