rus*_*aof 5 android-jetpack-compose
我正在为我的屏幕使用脚手架,并且有一个bottomNavigationBar
插入bottomBar
功能。
当我单击 中的某个项目时bottomNavigationBar
,我会导航到带有此栏的另一个屏幕,并且 Jetpack Compose 使用其默认的过渡动画,看起来像淡入淡出。
但底部navigationBar
在过渡过程中也会褪色,这看起来很糟糕,因为我希望它根本没有动画。
有什么办法可以删除 的过渡动画吗bottomNavigationBar
?
正如您在最后一条评论中看到的,用于导航的动画 API 目前由相应的伴奏库提供。但是,将来它将移回标准导航库。因此,目前我建议您使用 Accompanist 库而不是“默认”库。
如果您已经这样做了,您可以使用如下内容替换动画:
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) { ... }
...
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的示例中看到的,我将根据当前路线 ( ) 和目标路线 ( )ROUTE_MAIN
禁用动画。EnterTransition.None
ExitTransition.None
initialState.destination.route
targetState.destination.route
归档时间: |
|
查看次数: |
2624 次 |
最近记录: |