予測型「戻る」を設定する

予測型「戻る」とシステム アニメーションはデフォルトで有効になっています。アプリが 「戻る」イベントをインターセプトしていて、予測型「戻る」に移行していない場合は、 サポートされている「戻る」ナビゲーション API を使用するようにアプリを更新してください

予測型のホームに戻るアニメーション。
予測型のアクティビティ間アニメーション。
予測型のタスク間アニメーション。

デフォルトのシステム アニメーションを有効にする

ホームに戻る、アクティビティ間、タスク間のシステム アニメーションは、サポートされている「戻る」処理 API に移行したアプリで、Android 15 以降のデバイスで使用できます。

  • ホームに戻る: ユーザーをホーム画面に戻します。
  • アクティビティ間: アプリ内のアクティビティ間を遷移します。
  • タスク間: タスク間を遷移します。

これらのアニメーションは、Android 15 以降ではデフォルトで有効になっています。Android 13 または 14 を搭載したデバイスでは、 開発者向けオプションから有効にできます。

システム アニメーションを取得するには、AndroidX Activity 依存関係 を 1.6.0 以降に更新します。

Navigation Compose で予測型「戻る」を有効にする

Navigation Compose で予測型「戻る」を使用するには、 navigation-compose 2.8.0 ライブラリ以降を使用していることを確認してください。

ユーザーがスワイプして戻ると、Navigation Compose は画面間で自動的にクロスフェードします。

図 2. SociaLite のデフォルトのアプリ内クロスフェード アニメーション。

ナビゲーションを行う際は、 popEnterTransitionpopExitTransition を使用してカスタム遷移を作成できます。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,
)

このコードを実行すると、次の結果が得られます。

図 3. SociaLite のカスタム アプリ内アニメーション。

popEnterTransitionpopExitTransition は、バックスタックをポップするときのアニメーションを具体的に制御します(「戻る」ジェスチャーなど)。enterTransitionexitTransition を使用して、予測型「戻る」だけでなく、コンポーザブルの出入り全般のアニメーションを定義することもできます。enterTransitionexitTransition のみを設定すると、通常のナビゲーションとバックスタックのポップの両方に使用されます。ただし、popEnterTransitionpopExitTransition を使用すると、「戻る」ナビゲーション用に個別のカスタム アニメーションを作成できます。

共有要素遷移と統合する

共有要素遷移は、共有コンテンツを持つコンポーザブル間のスムーズな視覚的つながりを提供します。これはナビゲーションでよく使用されます。

図 4. Navigation Compose での予測型「戻る」による共有要素の遷移。

Navigation Compose で共有要素を使用するには、 共有要素による予測型「戻る」をご覧ください。

マテリアル Compose コンポーネントで予測型「戻る」をサポートする

マテリアル Compose ライブラリの多くのコンポーネントは、予測型「戻る」ジェスチャーとシームレスに連携するように設計されています。これらの コンポーネントで予測型「戻る」アニメーションを有効にするには、最新の Material3 依存関係(androidx.compose.material3:material3-*:1.3.0 以降)をプロジェクトに含めます。

予測型「戻る」アニメーションをサポートするマテリアル コンポーネントは次のとおりです。

SearchBarModalBottomSheet は、 予測型「戻る」ジェスチャーで自動的にアニメーション化されます。ModalNavigationDrawerModalDrawerSheetDismissibleDrawerSheetDismissibleNavigationDrawer では、それぞれのシート コンテンツ コンポーザブルに drawerState を渡す必要があります。

予測型「戻る」ジェスチャーのアニメーションをテストする

Android 13 または Android 14 を引き続き使用している場合は、ホームに戻るアニメーションをテストできます。

このアニメーションをテストする手順は次のとおりです。

  1. デバイスで、[設定] > [システム] > [開発者向けオプション] に移動します。
  2. [予測型「戻る」アニメーション] を選択します。
  3. 更新したアプリを起動し、「戻る」ジェスチャーを使用して実際の動作を確認します。

Android 15 以降では、この機能はデフォルトで有効になっています。

参考情報