下の図は、アニメーションの実装に使用する API を決定する際に役立ちます。
以下のディシジョン ツリーの質問に沿って、ユースケースに最適なアニメーション API を選択してください。
- アニメーションは、多くの視覚要素(SVG や画像など)で構成されるアート作品に近いですか?
- はい: シンプルな SVG(マイクロアニメーションを使用したアイコン)はありますか?
- はい:
AnimatedVectorDrawable
- ×: サードパーティのアニメーション フレームワーク(
Lottie
など)
- はい:
- いいえ: 無限に繰り返す必要がありますか?
- はい:
rememberInfiniteTransition
- いいえ: これはレイアウト アニメーションですか?
- はい: コンテンツが異なる複数の Compose を切り替える。
- はい: ナビゲーション作成ではどうしますか?
- 可能:
enterTransition
とexitTransition
が設定されたcomposable()
- いいえ:
AnimatedContent
、Crossfade
、Pager
- 可能:
- いいえ: 表示 / 非表示をアニメーション化しますか?
- はい:
Modifier.alpha()
を含むAnimatedVisibility
またはanimateFloatAsState
- いいえ: サイズをアニメーション化します。
- ○:
Modifier.animateContentSize
- いいえ: 他のレイアウト プロパティ(オフセット、パディングなど)
- はい: 「プロパティは互いに完全に独立していますか?」をご覧ください。
- いいえ: リストアイテムのアニメーション
- はい:
animateItemPlacement()
(並べ替えと削除は近日提供予定)
- はい:
- ○:
- はい:
- はい: ナビゲーション作成ではどうしますか?
- いいえ: 複数のプロパティをアニメーション化する必要がありますか?
- はい: プロパティは互いに完全に独立していますか?
- ○:
animate*AsState
。テキストにはTextMotion.Animated
を使用します。 - いいえ: 同時に開始しますか?
- はい:
AnimatedVisibility
、animateFloat
、animateInt
などを含むupdateTransition
- いいえ:
animateTo
を異なるタイミングで呼び出すAnimatable
(suspend 関数を使用)
- はい:
- ○:
- いいえ: アニメーションに事前定義されたターゲット値のセットはありますか?
- ○:
animate*AsState
。テキストにはTextMotion.Animated
を使用します。 - いいえ: ジェスチャー ドリブン アニメーションアニメーションが唯一の信頼できる情報源であるか?
- はい:
Animatable
とanimateTo
/snapTo
- いいえ: 状態管理のないワンショット アニメーション
- はい:
AnimationState
またはanimate
- いいえ: 回答が見つからない場合機能リクエストを送信する
- はい:
- はい:
- ○:
- はい: プロパティは互いに完全に独立していますか?
- はい: コンテンツが異なる複数の Compose を切り替える。
- はい:
- はい: シンプルな SVG(マイクロアニメーションを使用したアイコン)はありますか?
図の PDF 版をダウンロードします。