设置预测性返回

预测性返回和系统动画默认启用。如果您的应用拦截了返回事件,并且您尚未迁移到预测性返回,请更新您的应用以使用支持的返回导航 API

预测性返回主屏幕动画。
预测性跨 Activity 动画。
预测性跨任务动画。

启用默认系统动画

对于已迁移到支持的返回处理 API 的应用,返回主屏幕、跨 Activity 和跨任务系统动画在 Android 15 及更高版本设备上可用。

  • 返回主屏幕:将用户返回主屏幕。
  • 跨 Activity:在应用内的 Activity 之间进行转换。
  • 跨任务:在任务之间进行转换。

这些动画在 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 时,这些修饰符允许您定义进入和退出屏幕的动画方式。您可以使用它们创建各种效果,例如缩放、淡入淡出或滑动。

在此示例中,scaleOutpopExitTransition 中使用,以便在用户返回时缩小退出屏幕。此外,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 结合使用,请参阅带有共享元素的预测性返回

使用 Material Compose 组件支持预测性返回

Material Compose 库中的许多组件都设计为与预测性返回手势无缝协作。要在这些组件中启用预测性返回动画,请在您的项目中包含最新的 Material3 依赖项(androidx.compose.material3:material3-*:1.3.0 或更高版本)。

支持预测性返回动画的 Material 组件包括:

SearchBarModalBottomSheet 会自动与预测性返回手势一起动画化。ModalNavigationDrawerModalDrawerSheetDismissibleDrawerSheetDismissibleNavigationDrawer 需要您将 drawerState 传递给它们各自的 sheet 内容可组合项。

测试预测性返回手势动画

如果您仍在使用 Android 13 或 Android 14,可以测试返回主屏幕动画。

要测试此动画,请按以下步骤操作:

  1. 在您的设备上,前往 Settings > System > Developer options(设置 > 系统 > 开发者选项)。
  2. 选择 Predictive back animations(预测性返回动画)。
  3. 启动您更新的应用,并使用返回手势来查看其效果。

在 Android 15 及更高版本上,此功能默认启用。

其他资源