Configura una transición

Usa una transición para definir los cambios entre los 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 <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 rigen 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 secundarios <Transition> elementos:

Atributo Estado Descripción
<defaultDuration> Opcional

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

<Transition> que no establezcan explícitamente 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 interpolador de Android. Por ejemplo, @android:anim/accelerate_decelerate_interpolator. El interpolador se usa como valor predeterminado para todos los elementos secundarios <Transition> que no establezcan 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 animación específica entre las variantes de PanelState. Se pueden anidar varios elementos <Transition> dentro de un solo <Transitions> bloque.

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 se usa solo cuando coinciden todos los parámetros. Los parámetros se especifican en el evento y en 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 una variante a otra. Para ello, la transición especifica detalles como la animación que se 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 animador personalizado, se usa un animador 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 puede activar la transición.

Identificador único del panel asociado con este evento.
Atributo Estado Descripción
<id> Obligatorio Identificador único del evento para activar el activador.
<panelId> Opcional Identificador único del panel asociado con el evento.
componentName Opcional Nombre del componente asociado con este evento.
packageName Opcional Nombre del paquete asociado con el 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>