遷移を構成する

トランジションを使用して、パネル間の変更を定義します。パネルの 2 つのバリアント間で変更を行う方法とタイミングを記述するトランジションを定義できます。各パネルのトランジションのリストを定義できます。

<Transitions> XML タグは、単一の <TaskPanel> または <DecorPanel> の構成で 1 つ以上の <Transition> 定義のコンテナとして使用します。このタグを使用すると、パネルが視覚状態をあるバリエーションから別のバリエーションに切り替えるタイミングと方法を制御する一連のアニメーション ルールを定義できます。

XML 属性

<Transitions> タグでは、次の子 <Transition> 要素のデフォルト値を定義できます。

属性 ステータス 説明
<defaultDuration> 任意

すべての子 に適用されるデフォルトの継続時間をミリ秒単位で指定します

期間属性を明示的に設定していない <Transition> 要素。

この属性が指定されていない場合、通常は 300 ミリ秒のシステムの DEFAULT_DURATION 定数が使用されます。

defaultInterpolator 任意

Android Interpolator XML リソース ID を参照します。例: @android:anim/accelerate_decelerate_interpolatorこのインターポレーターは、インターポレーター属性を明示的に設定していないすべての子 <Transition> 要素のデフォルトとして使用されます。

デフォルトの補間関数が指定されていない場合、通常は AccelerateDecelerateInterpolator がデフォルトになります。

XML 子要素

<Transitions> の子要素は <Transition> です。これは、PanelState バリアント間の特定のアニメーション パスを定義するために使用されるコア要素です。複数の <Transition> 要素を 1 つの <Transitions> ブロック内にネストできます。

サンプルコード

このサンプルでは、fromVariant は省略可能です。定義されていない場合は、現在のバリアントが使用されます。fromVariant が定義されている場合、すべてのパラメータが一致する場合にのみ、この遷移が使用されます。パラメータは、イベントと 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>

Transition

遷移は、パネルの 2 つのバリアント間の視覚状態の変化をアニメーション化する方法を記述します。トランジションは、バリアントからバリアントへのパスの概要を示します。そのため、遷移では、適用するアニメーションやアニメーションをトリガーするために必要なイベントなどの詳細を指定します。

パネルの場合、遷移では境界、可視性、アルファなどのプロパティのアニメーションを定義できます。カスタム アニメーターが指定されていない場合は、デフォルトのアニメーターが使用されます。

XML 属性

<Transition> タグでは、いくつかの属性を使用して、アニメーションの特性と、アニメーションが発生する条件を定義します。

XML 子要素

<Event> は、遷移をトリガーできるイベントのプロパティを定義します。

このイベントに関連付けられているパネルの一意の識別子。
属性 ステータス 説明
<id> 必須 トリガーを有効にするイベントの一意の識別子。
<panelId> 任意 イベントに関連付けられているパネルの一意の識別子。
componentName 任意 このイベントに関連付けられたコンポーネント名。
packageName 任意 イベントに関連付けられたパッケージ名。

サンプルコード

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