Um painel descreve as propriedades da área que ocupa e funciona como um contêiner de app. Você usa configurações XML para definir painéis, que oferecem uma abordagem flexível e sem código para personalizar interfaces. Para gerenciar instâncias e estados, o sistema rastreia os painéis definidos.
Lista de painéis
A interface do sistema carrega as definições dos painéis de um recurso de matriz chamado window_states. Essa matriz de recursos aponta para os arquivos XML em que as configurações de painel individuais são definidas. Essa abordagem centralizada significa que os painéis gerenciados pela interface escalonável são carregados conforme o esperado e ficam prontos para uso pelo 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>
Definição do painel
Cada painel na estrutura da interface escalonável é definido com uma tag XML chamada
<TaskPanel> ou <DecorPanel>. <TaskPanel> descreve as propriedades de um
contêiner de app, enquanto <DecorPanel> descreve as propriedades de um contêiner de visualização.
A interface do sistema carrega essas definições de painel e rastreia os painéis até que outra configuração seja carregada. Por exemplo, por uma mudança de configuração devido à rotação ou a uma solicitação explícita do sistema. Os <TaskPanel> e <DecorPanel> servem como
componentes básicos para criar uma experiência personalizada usando
componentes de interface configuráveis.
Atributos XML
A tag <TaskPanel> pode conter esses atributos que você pode usar para definir estados
e transições.
| Atributo | Status | Descrição |
|---|---|---|
id |
Obrigatório | Especifica um identificador exclusivo para o painel. Esse atributo é usado para
recuperar o painel do PanelPool e gerenciar o estado dele
no sistema. |
role |
Obrigatório | Define a finalidade ou função do painel no sistema. O valor pode se referir a um recurso de string, uma matriz de strings de nomes de componentes ou a um ID de layout. Por exemplo, ele pode definir atividades persistentes que sempre devem ser exibidas no painel ou um layout a ser inflado. |
defaultVariant |
Opcional | Especifica o ID da variante que o painel deve adotar inicialmente quando for carregado. Se não for especificado, o sistema poderá usar a primeira variante definida como padrão. |
displayId |
Opcional | Especifica o ID da tela em que o painel deve aparecer. |
defaultLayer |
Opcional | Pode especificar uma ordem Z padrão para as variantes do painel se elas não definirem explicitamente uma camada. |
controller |
Opcional, sujeito a mudanças |
Referencia um recurso (geralmente um ID XML) que define um controlador específico do painel, que permite o armazenamento e a transmissão de valores de configuração para controladores de painel personalizados. Esses controladores precisam implementar a
|
Elementos filhos XML
As tags <TaskPanel> e <DecorPanel> podem incluir esses elementos filhos para
definir características e comportamentos padrão.
| Atributo | Descrição |
|---|---|
<Variant> |
A tag aninhada descreve uma configuração visual específica para o painel a qualquer momento. Um painel pode ter várias variantes, cada uma identificada por um ID exclusivo. Cada variante define propriedades como limites, visibilidade, camada, alfa, raio do canto e inserções para essa configuração específica. As variantes também podem herdar propriedades de uma principal variante. |
<KeyFrameVariant> |
A extensão de <Variant> permite a interpolação de propriedades visuais entre diferentes variantes com base em um valor de fração contínuo (0 a 1) e é usada para transições suaves e dinâmicas, como durante uma operação de arrastar, quando o estado do painel depende de uma entrada contínua, como um valor de arrastar. |
<Transitions> |
A tag aninhada contém uma coleção de Cada |
A tag <TaskPanel> também pode incluir esses elementos filhos especiais para definir
comportamentos específicos das tarefas.
| Atributo | Descrição |
|---|---|
<Restart> |
Tag aninhada para descrever uma política de reinicialização a ser aplicada quando um
TaskPanel ficar vazio. Essa tag oferece suporte aos atributos
policy, que pode ser definido como DEFAULT ou
LAST, e maxRetry, que especifica quantas
vezes a reinicialização será tentada antes do tempo limite. |
<TaskBehavior> |
Tag aninhada para descrever o comportamento de inicializações de tarefas nesse painel. Essa
tag oferece suporte ao atributo newTaskLaunchPolicy, que
configura o comportamento de novas inicializações de tarefas desse TaskPanel. Os valores de configuração válidos para essa política são DEFAULT,
REMAIN_IN_SOURCE, ou REPARENT_TO_SOURCE. |
Exemplo de código
<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>