アニメーション API を選択する

下の図は、アニメーションの実装に使用する API を決定する際に役立ちます。

適切なアニメーション API を選択するための決定木を示すフローチャート

図 1.適切なアニメーション API の選択方法を説明するディシジョン ツリー

以下のディシジョン ツリーの質問に沿って、ユースケースに最適なアニメーション API を選択してください。

  • アニメーションはアートに似ており、多くの視覚要素(SVG や画像など)で構成されていますか?
    • はい: シンプルな SVG(マイクロアニメーションを使用したアイコン)はありますか?
    • いいえ: 繰り返し行う必要はありますか?
      • ○: rememberInfiniteTransition
      • いいえ: これはレイアウト アニメーションですか?
        • はい: 異なるコンテンツを持つ複数のコンポーザブル間で変更しますか?
          • はい: ナビゲーション作成ではどうしますか?
          • いいえ: 出現 / 消失をアニメーション化していますか?
            • ○: Modifier.alpha()AnimatedVisibility または animateFloatAsState
            • ×: サイズをアニメーション化しますか?
              • ○: Modifier.animateContentSize
              • 不可: 他のレイアウト プロパティ(オフセット、パディングなど)
                • はい: 「プロパティは互いに完全に独立しているのですか?」をご覧ください。
                • いいえ: リストアイテムのアニメーションは必要ですか?
        • いいえ: 複数のプロパティをアニメーション化する必要がありますか?
          • はい: プロパティは互いに完全に独立していますか?
            • ○: animate*AsState。テキストには TextMotion.Animated を使用します。
            • いいえ: 同じ時刻に開始しますか?
              • ○: ○: updateTransitionAnimatedVisibilityanimateFloatanimateInt など)
              • ×: AnimatableanimateTo が異なるタイミングで呼び出される(suspend 関数を使用)
          • いいえ: アニメーションには、事前に定義されたターゲット値がありますか?
            • ○: animate*AsState。テキストには TextMotion.Animated を使用します。
            • いいえ: ジェスチャーによるアニメーションですか?アニメーションが唯一の信頼できる情報源ですか。

図の PDF 版をダウンロードします。