Configurar uma transição

Use uma transição para definir mudanças entre painéis. É possível definir uma transição para descrever como e quando fazer uma mudança entre duas variantes de um painel. É possível definir uma lista de transições para cada painel.

Use a tag XML <Transitions> como um contêiner para uma ou mais definições <Transition> na configuração de um único <TaskPanel> ou <DecorPanel>. Você pode usar essa tag para definir um conjunto de regras de animação que governam quando e como um painel deve mudar o estado visual de uma variante distinta para outra.

Atributos XML

A tag <Transitions> pode definir valores padrão para estes elementos filhos <Transition>:

Atributo Status Descrição
<defaultDuration> Opcional

Especifica uma duração padrão em milissegundos a ser aplicada a todos os filhos

Elementos <Transition> que não definem explicitamente um atributo de duração.

A constante DEFAULT_DURATION do sistema, geralmente 300 milissegundos, é usada quando esse atributo não é especificado.

defaultInterpolator Opcional

Faz referência a um ID de recurso XML do Android Interpolator. Por exemplo, @android:anim/accelerate_decelerate_interpolator. O interpolador é usado como padrão para todos os elementos <Transition> filhos que não definem explicitamente um atributo de interpolador.

Se nenhum interpolador padrão for especificado, o sistema geralmente usará um AccelerateDecelerateInterpolator.

Elementos filhos XML

O elemento filho de <Transitions> é <Transition>, o elemento principal usado para definir um caminho de animação específico entre variantes de PanelState. Vários elementos <Transition> podem ser aninhados em um único bloco <Transitions>.

Exemplo de código

Neste exemplo, fromVariant é opcional. Quando não é definida, a variante atual é usada. Se fromVariant for definido, a transição será usada apenas quando todos os parâmetros corresponderem. Os parâmetros são especificados no evento e em fromVariant.

<Transitions defaultDuration="400"
         defaultInterpolator="@android:anim/linear_interpolator">
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  </Transition>
</Transitions>

Transição

Uma transição descreve como animar uma mudança no estado visual entre duas variantes de um painel. Uma transição descreve o caminho de uma variante para outra. Para isso, a transição especifica detalhes como a animação a ser aplicada e o evento necessário para acionar a animação.

Para um painel, as transições podem definir animações para propriedades como limites, visibilidade e alfa. Se um animador personalizado não for especificado, um animador padrão será usado.

Atributos XML

A tag <Transition> usa vários atributos para definir as características da animação e as condições em que ela vai ocorrer.

Elementos filhos XML

<Event> define as propriedades do evento que podem acionar a transição.

Identificador exclusivo do painel associado a este evento.
Atributo Status Descrição
<id> Obrigatório Identificador exclusivo do evento para ativar o gatilho.
<panelId> Opcional Identificador exclusivo do painel associado ao evento.
componentName Opcional Nome do componente associado a esse evento.
packageName Opcional Nome do pacote associado ao evento.

Exemplo de código

<Transitions defaultDuration="400"
        defaultInterpolator="@android:anim/accelerate_interpolator">
  <!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  <Transition>

  <!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
  <Transition fromVariant="opened_app"
              toVariant="closed_app"
              animator="@animator/close_app">
    <Event id="_System_PanelEmptyEvent"
           panelId="application_panel" />
  <Transition>
</Transitions>