如需启用预测性返回动画,您必须选择启用对预测性返回手势的支持。如需启用新样式,请将 android:enableOnBackInvokedCallback="true
添加到 AndroidManifest.xml
文件中的 <application>
标记或各个 <activity>
标记。
启用默认系统动画
在 Android 15 及更高版本的设备上,已迁移到受支持的返回处理 API 的应用可以使用“返回主屏幕”“跨 activity”和“跨任务”系统动画。
- 返回主屏幕:将用户返回主屏幕。
- 跨 activity:应用内 activity 之间的转换。
- 跨任务:任务之间的转换。
在 Android 15 及更高版本中,这些动画默认处于启用状态。在搭载 Android 13 或 14 的设备上,用户可以通过开发者选项启用这些功能。
如需获取系统动画,请将 AndroidX Activity
依赖项更新为 1.6.0 或更高版本。
使用 Navigation Compose 启用预测性返回
如需在 Navigation Compose 中使用预测性返回,请确保您使用的是 navigation-compose
2.8.0 库或更高版本。
当用户滑回时,Navigation Compose 会自动在屏幕之间进行交叉淡出:
在导航时,您可以使用 popEnterTransition
和 popExitTransition
创建自定义转换。将这些修饰符应用于 NavHost
后,您可以定义进入和退出屏幕的动画效果。您可以使用它们来创建各种效果,例如缩放、淡出或滑动。
在此示例中,scaleOut
在 popExitTransition
中用于在用户返回时缩小退出屏幕。此外,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 搭配使用,请参阅使用共享元素的预测性返回。
使用 Material Compose 组件支持预测性返回
Material Compose 库中的许多组件都旨在与预测性返回手势无缝配合使用。如需在这些组件中启用预测性返回动画,请在项目中添加最新的 Material3 依赖项(androidx.compose.material3:material3-*:1.3.0
或更高版本)。
支持预测性返回动画的 Material 组件包括:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
和 ModalBottomSheet
会自动使用预测性返回手势添加动画效果。ModalNavigationDrawer
、ModalDrawerSheet
、DismissibleDrawerSheet
和 DismissibleNavigationDrawer
要求您将 drawerState
传递给各自的工作表内容可组合项。
测试预测性返回手势动画
如果您仍使用 Android 13 或 Android 14,则可以测试返回主屏幕动画。
如需测试此动画,请按以下步骤操作:
- 在您的设备上,依次转到设置 > 系统 > 开发者选项。
- 选择预测性返回手势动画。
- 启动更新后的应用,然后执行返回手势,看看实际运行效果。
在 Android 15 及更高版本中,此功能默认处于启用状态。