Configurare una transizione

Utilizza una transizione per definire le modifiche tra i riquadri. Puoi definire una transizione per descrivere come e quando apportare una modifica tra due varianti di un pannello. Puoi definire un elenco di transizioni per ogni riquadro.

Utilizza il tag XML <Transitions> come contenitore per una o più definizioni <Transition> nella configurazione di un singolo <TaskPanel> o <DecorPanel>. Puoi utilizzare questo tag per definire un insieme di regole di animazione per stabilire quando e come un pannello deve cambiare lo stato visivo da una variante distinta a un'altra.

Attributi XML

Il tag <Transitions> può definire i valori predefiniti per questi elementi secondari <Transition>:

Attributo Stato Descrizione
<defaultDuration> Facoltativo

Specifica una durata predefinita in millisecondi da applicare a tutti i secondari

Elementi <Transition> che non impostano esplicitamente un attributo di durata.

Se questo attributo non è specificato, viene utilizzata la costante DEFAULT_DURATION del sistema, in genere 300 millisecondi.

defaultInterpolator Facoltativo

Fa riferimento a un ID risorsa XML di interpolatore Android. Ad esempio, @android:anim/accelerate_decelerate_interpolator. L'interpolatore viene utilizzato come valore predefinito per tutti gli elementi secondari <Transition> che non impostano esplicitamente un attributo interpolatore.

Se non viene specificato alcun interpolatore predefinito, il sistema in genere utilizza un AccelerateDecelerateInterpolator.

Elementi secondari XML

L'elemento secondario di <Transitions> è <Transition>, l'elemento principale utilizzato per definire un percorso di animazione specifico tra le varianti PanelState. È possibile nidificare più elementi <Transition> all'interno di un singolo blocco <Transitions>.

Codice di esempio

In questo esempio, fromVariant è facoltativo. Se non è definita, viene utilizzata la variante corrente. Se è definito fromVariant, la transizione viene utilizzata solo quando tutti i parametri corrispondono. I parametri sono specificati in Evento e 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>

Transizione

Una transizione descrive come animare una modifica dello stato visivo tra due varianti di un pannello. Una transizione delinea il percorso da una variante all'altra. A questo scopo, la transizione specifica dettagli come l'animazione da applicare e l'evento necessario per attivarla.

Per un pannello, le transizioni possono definire animazioni per proprietà come limiti, visibilità e alfa. Se non viene specificato un animatore personalizzato, viene utilizzato un animatore predefinito.

Attributi XML

Il tag <Transition> utilizza diversi attributi per definire le caratteristiche dell'animazione e le condizioni in cui deve verificarsi.

Elementi secondari XML

<Event> definisce le proprietà dell'evento che può attivare la transizione.

Identificatore univoco del riquadro associato a questo evento.
Attributo Stato Descrizione
<id> Obbligatorio Identificatore univoco dell'evento per attivare il trigger.
<panelId> Facoltativo Identificatore univoco del riquadro associato all'evento.
componentName Facoltativo Il nome del componente associato a questo evento.
packageName Facoltativo Nome del pacchetto associato all'evento.

Codice di esempio

<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>