MotionLayout の例

Compose をお試しください
Jetpack Compose は、Android で推奨される UI ツールキットです。Compose でアニメーションを使用する方法をご覧ください。

このドキュメントでは、MotionLayout の使用方法の例を紹介します。各例には、モーションを示す動画のほか、モーションのシーンとレイアウトに対応するコードを掲載しています。

基本的なモーション

この例は、タップして水平方向にドラッグできる単一のビューを示します。

図 1. ビューをドラッグします。

カスタム属性 - backgroundColor

この例は、基本的なモーションの例と似ています。基本的なモーションに加え、ビューの移動に伴ってビューの背景色を変更します。

図 2. 背景色が変化するビューをドラッグする。

ImageFilterView - 画像の遷移

この例は、ImageFilterView の彩度の値の遷移方法を示します。

図 3. 彩度が変化しているときに画像をドラッグする。

キーフレームの位置

この例は、<KeyFrameSet> を使用して、移動するビューの Y 位置を変更します。

図 4. ビューをドラッグして Y 座標を変更します。

キーフレームの補間

この例は、キーフレームの位置の例で示されているビューのトランジションに、回転とスケーリングを加えます。

図 5. ビューをドラッグして、Y 座標、回転、スケールを変更します。

キーフレームの循環

この例は、<KeyCycle> 要素を追加して、波のようなモーションをビューに追加します。

図 6. ビューを波のような動きでドラッグしながら、色を変更します。

CoordinatorLayout(1/2)

この例は、MotionLayout を既存の AppBarLayout に追加して、アプリバーにモーションを追加します。この例については、MotionLayout の概要(パート III)に詳しい説明があります。

図 7. アプリバーが展開されている間にコンテンツをスクロールします。

CoordinatorLayout(2/2)

この例は、MotionLayout を既存の AppBarLayout に追加して、アプリバーにモーションを追加します。

図 8.アプリバーが拡大し、アプリバーのテキストがアニメーションで表示されたり消えたりする間、コンテンツをスクロールします。

DrawerLayout(1/2)

この例は、DrawerLayout にモーションを追加する方法を示します。この例については、MotionLayout の概要(パート III)に詳しい説明があります。

図 9. `DrawerLayout` を展開します。

DrawerLayout(2/2)

この例は、DrawerLayout にモーションを追加する方法を示します。

図 10. アニメーション付きのメニュー テキストで `DrawerLayout` を展開します。

サイドパネル

この例は、メイン コンテンツ領域を右にドラッグしたときにサイドパネルを表示する方法を示します。

図 11. メイン コンテンツをドラッグしてサイドパネルを表示します。

パララックス

この例は、複数の背景レイヤが異なる速度で移動するパララックスの背景を示します。

図 12. ヘッダー画像の視差効果。

ViewPager

この例は、ViewPager タブの切り替え時にモーションを追加する方法を示します。この例については、MotionLayout の概要(パート III)に詳しい説明があります。

図 13. `ViewPager` をスワイプしている間、ヘッダー画像にパララックス効果を適用します。

ViewPager - Lottie

この例は、ViewPager タブの切り替え時にモーションを追加する方法を示します。

図 14. `ViewPager` をスワイプしているときに、ヘッダー画像に Lottie エフェクトが表示されている画像。

複雑なモーション(1/3)

この例は、これまでの例の要素を組み合わせた複雑なモーションを示します。

図 15. 効果を組み合わせて複雑なモーションを作成します。

複雑なモーション(2/3)

この例は、これまでの例の要素を組み合わせた複雑なモーションを示します。

図 16. 効果を組み合わせて複雑なモーションを作成します。

複雑なモーション(3/3)

この例は、これまでの例の要素を組み合わせた複雑なモーションを示します。

図 17. 効果を組み合わせて複雑なモーションを作成します。

フラグメントの遷移(1/2)

この例は、MotionLayout を使ったフラグメント間の遷移方法を示します。

図 18. フラグメントの遷移。

フラグメントの遷移(2/2)

この例は、MotionLayout を使ったフラグメント間の遷移方法を示します。

図 19. フラグメントの遷移。

YouTube のようなモーション

この例は、追加のコンテンツを含む、コンパクトなビューと全画面表示の間の遷移を示します。

図 20. YouTube と同様のフラグメントの切り替え。

KeyTrigger

この例は、遷移が進行状況のしきい値を上回ったときと下回ったときにフローティング操作ボタンの表示と非表示を切り替える方法を示します。

図 21. フローティング操作ボタンの表示と非表示を切り替えます。

複数の都道府県 / 州

この例は、状態を使用して、適用するモーションを決定する方法を示します。

図 22. 状態に基づくさまざまなモーション。