Um painel descreve as propriedades da área que ocupa e atua 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 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 estão 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 no framework de UI escalonável é definido com uma tag XML chamada
<TaskPanel>
, que descreve as propriedades de um contêiner de app. 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. O <TaskPanel>
serve como um componente fundamental para
criar uma experiência personalizada com componentes de interface configuráveis.
Atributos XML
A tag <TaskPanel>
pode conter estes 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 um ID de layout. Por exemplo, ele pode definir atividades persistentes que sempre precisam ser mostradas 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 vai 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 |
Faz referência a um recurso (geralmente um ID XML) que define um controlador específico do painel, permitindo o armazenamento e a transmissão de valores de configuração para controladores de painel personalizados. Esses controladores precisam implementar a interface
|
Elementos filhos XML
A tag <TaskPanel>
pode incluir estes atributos para definir características e
comportamentos padrão:
Atributo | Descrição |
---|---|
<Variant> |
Uma tag aninhada descreve uma configuração visual específica para o painel em 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 encartes para essa configuração específica. As variantes também podem herdar propriedades de uma variante principal. |
<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 (de 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 arrasto. |
<Transitions> |
A tag aninhada contém uma coleção de definições de Cada |
Exemplo de código
<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>