我使用脚手架作为我的屏幕,在bottomBar
函数中插入了一个bottomBar
。
当我点击bottomNavigationBar
中的一个项目时,我用这个栏导航到另一个屏幕,Jetpack Compose使用它的默认过渡动画,看起来像是褪色。
但是在过渡期间,底部的navigationBar
也会褪色,这看起来很糟糕,因为我希望它根本没有动画。
有没有办法删除bottomNavigationBar
的过渡动画?
发布于 2022-04-19 16:56:22
正如您在最后一个注释中所看到的,用于导航的动画API当前由相应的伴奏库提供。但是,在将来,它将被移回标准导航库。因此,现在,我建议您使用伴奏库而不是“默认”库。
如果您已经这样做了,可以使用以下内容替换动画:
AnimatedNavHost(
navController = navController,
startDestination = ROUTE_MAIN,
enterTransition = {
if (initialState.destination.route == ROUTE_MAIN) {
EnterTransition.None
} else {
slideInHorizontally(
initialOffsetX = { it },
animationSpec = tween(300)
)
}
},
exitTransition = {
if (initialState.destination.route == ROUTE_MAIN) {
ExitTransition.None
} else {
slideOutHorizontally(
targetOffsetX = { -it },
animationSpec = tween(300)
)
}
},
popEnterTransition = {
if (targetState.destination.route == ROUTE_MAIN) {
EnterTransition.None
} else {
slideInHorizontally(
initialOffsetX = { -it },
animationSpec = tween(300)
)
}
},
popExitTransition = {
if (targetState.destination.route == ROUTE_MAIN) {
ExitTransition.None
} else {
slideOutHorizontally(
targetOffsetX = { it },
animationSpec = tween(300)
)
}
},
) {
composable(ROUTE_MAIN) { ... }
composable(ROUTE_DETAILS) { ... }
...
}
正如您在上面的示例中所看到的,我使用基于当前路由( ROUTE_MAIN
)和目标路由(targetState.destination.route
)的EnterTransition.None
和ExitTransition.None
从ExitTransition.None
禁用动画。
https://stackoverflow.com/questions/71925377
复制相似问题