android - 使用 Compose 在导航中的可组合项之间制作动画
问题描述
我已经开始尝试使用 Navigation 进行撰写。
我创建了 2 个 Composable,一切正常。
但我缺少的是页面之间的动画(或过渡)。我没有找到任何资源指出如何在 Compose 中执行此操作。
我知道所有动画都基于 Compose 中的状态,但我唯一知道的是 Navigation Back Stack。
解决方案
您可以使用我制作的可组合来显示进入动画(在“进入”和“退出”参数中配置首选效果)
fun EnterAnimation(content: @Composable () -> Unit) {
AnimatedVisibility(
visible = true,
enter = slideInVertically(
initialOffsetY = { -40 }
) + expandVertically(
expandFrom = Alignment.Top
) + fadeIn(initialAlpha = 0.3f),
exit = slideOutVertically() + shrinkVertically() + fadeOut(),
content = content,
initiallyVisible = false
)
}
你可以像这样使用它:
NavHost(
navController = navController,
startDestination = "dest1"
) {
composable("dest1") {
EnterAnimation {
FirstScreen(navController)
}
}
composable("dest2") {
EnterAnimation {
SecondScreen(navController)
}
}
}
推荐阅读
- apache - Apache 将 https 非 www 重定向到 https www (Ubuntu)
- ruby - Ruby - 处理布尔值、if/then 语句、驳斥/断言方法,我的代码是否过于基础?
- java - 从键为 ArrayList 的哈希表中获取值
,并且查找是字符串 - oauth-2.0 - web api 2 - 禁止 Oauth2 Bearer 令牌访问
- c++ - SFINAE - 如果更复杂的功能失败,则回退到默认功能
- apache - 其他电脑无法访问网页
- android - Android Mindorks 库,如何从 Data 类调用片段方法
- .net - 在 ASP.NET core 2.0 中隐藏字段时遇到问题 - 如何在不注释掉的情况下正确完成?
- yii2 - Yii2 用户资料
- c++ - 堆二叉树是否必须完成才能成为堆?