予測型「戻る」とシステム アニメーションはデフォルトで有効になっています。アプリが「戻る」イベントをインターセプトしていて、予測型「戻る」に移行していない場合は、サポートされている「戻る」ナビゲーション API を使用するようにアプリを更新します
デフォルトのシステム アニメーションを有効にする
ホームに戻る、アクティビティ間、タスク間のシステム アニメーションは、サポートされている戻る処理 API に移行したアプリで、Android 15 以降のデバイスで利用できます。
- Back-to-home: ユーザーをホーム画面に戻します。
- アクティビティ間: アプリ内のアクティビティ間の遷移。
- クロスタスク: タスク間の移行。
これらのアニメーションは、Android 15 以降ではデフォルトで有効になっています。Android 13 または 14 を搭載したデバイスでは、ユーザーは開発者向けオプションから有効にできます。
システム アニメーションを取得するには、AndroidX Activity
依存関係を 1.6.0 以降に更新します。
Navigation Compose で予測型「戻る」を有効にする
Navigation Compose で予測型「戻る」を使用するには、navigation-compose
2.8.0 以降のライブラリを使用していることを確認してください。
Navigation 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 以降では、この機能はデフォルトで有効になっています。