根据Android开发者文档,可以为预测后退手势实现自定义动画。我让它在一个类似于他们在他们的文档中使用 Transition API 展示的示例中工作。
但是,我想根据 Jetpack Compose 中的导航组件的向后进度实现类似的逐步过渡。
我该怎么做?我找不到任何有关能够控制不同导航目的地之间转换进度的文档。
这是我的
NavHost
的一个例子:
NavHost(navController = pageNavController!!, startDestination = "home"){
composable(
route = "home",
enterTransition = {
navEnterTransition(
direction = DIRECTION_LEFT,
orientation = orientation) },
exitTransition = {
navExitTransition(
direction = DIRECTION_LEFT,
orientation = orientation) },
content = { HomePage() }
)
composable(
route = "settings",
enterTransition = { navEnterTransition(
direction = getNavEnterDirection(initialState.destination),
orientation = orientation) },
exitTransition = { navExitTransition(
direction = getNavExitDirection(initialState.destination),
orientation = orientation) },
content = { SettingsPage() }
)
}
有没有办法通过这种导航方法来实现自定义预测背部手势?
如果不行,还有其他可行的方法吗?
正如 ianhanniballake 指出的那样,尚不支持此功能。
但是,我可以使用 Pager 和一些复杂的自定义导航和修改器使其正常工作。这有效并结合了预测性背部手势,但非常不稳定并且存在一些错误,因此我决定反对,我将等待官方支持。
要在根 Activity 中启用预测返回设置
android:enableOnBackInvokedCallback="true"
,并至少使用导航 2.8.X
。您可以在此处找到最新版本。
正如 @NanoNova 所提到的,所有组件可能尚未迁移,但您可以在此处
阅读完整列表这篇博文很好地介绍了迁移到 Predictive Back 的路线图: https://android-developers.googleblog.com/2024/05/a-developers-roadmap-to-predictive-back.html