如何在 Android Wear OS Compose 中制作导航动画

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

我想要的是一些带有滑动动画的屏幕转换代码。

val navController = rememberSwipeDismissableNavController()

SwipeDismissableNavHost(
                navController = swipeDismissableNavController,
                startDestination = Screen.FirstScreen.route,
                modifier = modifier
            ) {

composable(route = Screen.FirstScreen.route) {
   navController.navigate(Screen.SecondScreen.route)
}

composable(route = Screen.SecondScreen.route)
.
.

}

这里如何处理动画?

val option = NavOptions.Builder()
                            .setEnterAnim(R.anim.slide_in_left)
                            .setExitAnim(R.anim.slide_out_right)
                            .build()
                        
navController.navigate(Screen.RecordNotUploadScreen.route, option)

此代码不起作用

android kotlin android-jetpack-compose wear-os android-wear-2.0
1个回答
0
投票

以下是在 Android Wear OS Compose 中实现带有滑动动画的屏幕过渡的代码:

val navController = rememberSwipeDismissableNavController()

SwipeDismissableNavHost(
    navController = navController,
    startDestination = Screen.FirstScreen.route,
    modifier = modifier
) {
    composable(route = Screen.FirstScreen.route) {
        // Your content for the first screen
        Button(onClick = {
            navController.navigate(Screen.SecondScreen.route)
        }) {
            Text("Go to Second Screen")
        }
    }

    composable(route = Screen.SecondScreen.route) {
        // Your content for the second screen
        // ...
    }
}

要处理动画,您可以使用 Compose Navigation 提供的

rememberAnimatedNavController
。确保您已将适当的导航依赖项添加到您的项目中。这是一个例子:

val navController = rememberAnimatedNavController()

SwipeDismissableNavHost(
    navController = navController,
    startDestination = Screen.FirstScreen.route,
    modifier = modifier
) {
    // Composables for each screen
}

// Define your animation resources (slide_in_left.xml and slide_out_right.xml) in the res/anim directory

// Then use NavOptions to specify animations when navigating
val option = NavOptions.Builder()
    .setEnterAnim(R.anim.slide_in_left)
    .setExitAnim(R.anim.slide_out_right)
    .build()

navController.navigate(Screen.SecondScreen.route, options = option)

确保您在 Android Wear OS 项目的

res/anim
目录中定义了 Slide_in_left.xml 和 Slide_out_right.xml 动画文件。这些文件应包含适合您的滑动动画效果的动画定义。

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