予測型「戻る」アニメーションを有効にするには、予測型「戻る」ジェスチャーのサポートをオプトインする必要があります。オプトインするには、AndroidManifest.xml
ファイル内の <application>
タグまたは個々の <activity>
タグに android:enableOnBackInvokedCallback="true
を追加します。
デフォルトのシステム アニメーションを有効にする
ホームに戻る、アクティビティ間、タスク間のシステム アニメーションは、サポートされている戻る処理 API に移行したアプリの場合、Android 15 以降のデバイスで利用できます。
- ホームに戻る: ホーム画面に戻ります。
- アクティビティ間: アプリ内のアクティビティ間の遷移。
- クロスタスク: タスク間の遷移。
これらのアニメーションは、Android 15 以降ではデフォルトで有効になっています。Android 13 または 14 を搭載したデバイスでは、ユーザーは開発者向けオプションで有効にできます。
システム アニメーションを取得するには、AndroidX Activity
の依存関係を 1.6.0 以降に更新します。
Navigation Compose で予測型「戻る」を有効にする
Navigation Compose で予測型「戻る」を使用するには、navigation-compose
2.8.0 ライブラリ以降を使用していることを確認してください。
ユーザーが後方にスワイプすると、ナビゲーション Compose で画面間のクロスフェードが自動的に実行されます。
ナビゲーション時に、popEnterTransition
と popExitTransition
を使用してカスタム遷移を作成できます。これらの修飾子を NavHost
に適用すると、画面の開始と終了のアニメーション方法を定義できます。これらを使用して、スケーリング、フェード、スライドなどのさまざまな効果を作成できます。
この例では、popExitTransition
内で scaleOut
を使用して、ユーザーが戻る操作を行うと終了画面を縮小します。また、transformOrigin
パラメータは、スケーリング アニメーションが行われるポイントを決定します。デフォルトでは、画面の中央(0.5f, 0.5f
)です。この値を調整して、別のポイントからスケーリングを開始できます。
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
このコードの結果は次のようになります。
popEnterTransition
と popExitTransition
は、たとえば「戻る」ジェスチャーでバックスタックをポップする際のアニメーションを制御します。enterTransition
と exitTransition
を使用して、予測型「戻る」だけでなく、一般的なコンポーザブルの開始と終了のアニメーションを定義することもできます。enterTransition
と exitTransition
のみを設定した場合は、通常のナビゲーションとバックスタックのポップアップの両方に使用されます。ただし、popEnterTransition
と popExitTransition
を使用すると、戻るナビゲーションに固有のアニメーションを作成できます。
共有要素遷移と統合する
共有要素遷移は、共有コンテンツを含むコンポーザブル間にスムーズな視覚的なつながりを提供します。これは、ナビゲーションによく使用されます。
Navigation Compose で共有要素を使用するには、共有要素による予測型「戻る」をご覧ください。
マテリアル Compose コンポーネントで予測型「戻る」をサポートする
マテリアル Compose ライブラリの多くのコンポーネントは、予測型「戻る」ジェスチャーとシームレスに動作するように設計されています。これらのコンポーネントで予測型「戻る」アニメーションを有効にするには、最新の Material3 依存関係(androidx.compose.material3:material3-*:1.3.0
以降)をプロジェクトに含めます。
予測型「戻る」アニメーションをサポートするマテリアル コンポーネントには、次のようなものがあります。
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
と ModalBottomSheet
は、予測型「戻る」ジェスチャーで自動的にアニメーション化されます。ModalNavigationDrawer
、ModalDrawerSheet
、DismissibleDrawerSheet
、DismissibleNavigationDrawer
では、それぞれのシート コンテンツ コンポーザブルに drawerState
を渡す必要があります。
予測型「戻る」ジェスチャーのアニメーションをテストする
Android 13 または Android 14 を引き続き使用している場合は、ホーム画面への戻りアニメーションをテストできます。
このアニメーションをテストする手順は次のとおりです。
- デバイスで、[設定] > [システム] > [開発者向けオプション] に移動します。
- [予測型「戻る」アニメーション] を選択します。
- 更新したアプリを起動し、「戻る」ジェスチャーを使用して実際の動作を確認します。
Android 15 以降では、この機能はデフォルトで有効になっています。