Configura una transición

Usa una transición para definir los cambios entre paneles. Puedes definir una transición para describir cómo y cuándo realizar un cambio entre dos variantes de un panel. Puedes definir una lista de transiciones para cada panel.

Usa la etiqueta XML <Transitions> como contenedor para una o más definiciones de <Transition> en la configuración de un solo <TaskPanel> o <DecorPanel>. Puedes usar esta etiqueta para definir un conjunto de reglas de animación que controlen cuándo y cómo un panel debe cambiar el estado visual de una variante distinta a otra.

Atributos XML

La etiqueta <Transitions> puede definir valores predeterminados para estos elementos <Transition> secundarios:

Atributo Estado Descripción
<defaultDuration> Opcional

Especifica una duración predeterminada en milisegundos que se aplicará a todos los elementos secundarios.

Elementos <Transition> que no establecen de forma explícita un atributo de duración.

La constante DEFAULT_DURATION del sistema, que suele ser de 300 milisegundos, se usa cuando no se especifica este atributo.

defaultInterpolator Opcional

Hace referencia a un ID de recurso XML de Interpolator de Android. Por ejemplo, @android:anim/accelerate_decelerate_interpolator. El interpolador se usa como valor predeterminado para todos los elementos <Transition> secundarios que no establecen explícitamente un atributo de interpolador.

Si no se especifica ningún interpolador predeterminado, el sistema suele usar un AccelerateDecelerateInterpolator.

Elementos secundarios XML

El elemento secundario de <Transitions> es <Transition>, el elemento principal que se usa para definir una ruta de acceso de animación específica entre las variantes de PanelState. Se pueden anidar varios elementos <Transition> dentro de un solo bloque <Transitions>.

Código de muestra

En este ejemplo, fromVariant es opcional. Cuando no se define, se usa la variante actual. Si se define fromVariant, la transición solo se usa cuando coinciden todos los parámetros. Los parámetros se especifican en Event y 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>

Transición

Una transición describe cómo animar un cambio en el estado visual entre dos variantes de un panel. Una transición describe la ruta de acceso de una variante a otra. Para ello, la transición especifica detalles como la animación que se debe aplicar y el evento necesario para activar la animación.

En el caso de un panel, las transiciones pueden definir animaciones para propiedades como límites, visibilidad y alfa. Si no se especifica un objeto Animator personalizado, se usa uno predeterminado.

Atributos XML

La etiqueta <Transition> usa varios atributos para definir las características de la animación y las condiciones en las que debe ocurrir.

Elementos secundarios XML

<Event> define las propiedades del evento que pueden activar la transición.

Es el identificador único del panel asociado a este evento.
Atributo Estado Descripción
<id> Obligatorio Es el identificador único del evento para activar el disparador.
<panelId> Opcional Es el identificador único del panel asociado al evento.
componentName Opcional Es el nombre del componente asociado a este evento.
packageName Opcional Es el nombre del paquete asociado al evento.

Código de muestra

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