通过 Compose 导航进行预测返回

问题描述 投票:0回答:1

根据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 和一些复杂的自定义导航和修改器使其正常工作。这有效并结合了预测性背部手势,但非常不稳定并且存在一些错误,因此我决定反对,我将等待官方支持。

android android-jetpack-compose android-13 jetpack-compose-navigation
1个回答
0
投票

要在根 Activity 中启用预测返回设置

android:enableOnBackInvokedCallback="true" 
,并至少使用导航
2.8.X
。您可以在此处找到最新版本。

正如 @NanoNova 所提到的,所有组件可能尚未迁移,但您可以在此处

阅读完整列表

这篇博文很好地介绍了迁移到 Predictive Back 的路线图: https://android-developers.googleblog.com/2024/05/a-developers-roadmap-to-predictive-back.html

© www.soinside.com 2019 - 2024. All rights reserved.