You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安卓JetpackCompose中的共享元素是如何工作的?

共享元素是通过在Compose中使用Transition API实现的。该API在为不同元素提供进出动画时非常有用。在联合使用Transition和NavigationView时,可以使用rememberNavController()函数来创建导航控制器,然后定义转换。在转换中,将SharedAxis对象分配给目标和源。下面是一个示例代码:

val navController = rememberNavController()
val transition = updateTransition(navController, label = "nav")
val toDown = SharedAxis(
    motionSpec = TweenSpec(durationMillis = 300)
)
val toUp = SharedAxis(
    motionSpec = TweenSpec(durationMillis = 300),
    direction = SharedAxis.Y
)
val backstackEntry = navController.currentBackStackEntryAsState()
val destination = backstackEntry.value?.destination?.route
// 定义转换和源
val triggerBackwardAnimation = destination?.let {
    transition.animate(direction = "forward$it") { 
        if (it == "secondScreen") toDown else toUp
    }
}
// 定义目标
val triggerForwardAnimation = destination?.let {
    transition.animate(direction = "backward$it") {
        if (it == "secondScreen") toUp else toDown
    }
}
// 使用共享元素
NavHost(navController = navController, startDestination = "firstScreen") {
    composable("firstScreen") {
        FirstScreen(
            onClick = { route -> navController.navigate(route) },
            triggerBackwardAnimation = triggerBackwardAnimation
        )
    }
    composable("secondScreen") {
        SecondScreen(triggerForwardAnimation = triggerForwardAnimation)
    }
}

此示例中,我们为向前和向后导航定义了两种共享元素。界面之间的动画可以根据界面之间的关系切换。这是仅处理带有Jetpack Compose的动画的一种方法。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

10 个问题带你了解 Compose Multiplatform 1.0 |社区征文

正文开始前先统一一下文中的用语:- **compose-jb**:Compose Multiplatform 简称,包含下面三者- **compose-android**:Jetpack Compose- **compose-desktop**:Compose for Desktop- **compose-web**: Compose fo... compose-web 以及 compose-android 三者进行了整合,开发者可以在单个工程中使用同一套 Artifacts 开发出运行在 Android,Desktop(Windows, macOS, LInux)以及 Web 等多端的应用程序,工程中可以实现大部分代码的共享...

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文

有的时候 Google 会将其翻译成`现代安卓开发`,有的时候又翻译成`新式安卓开发`,个人觉得前者的翻译虽然激进、倒也贴切。下面按照 MAD 的构成要点逐步展开,帮助大家快速了解 MAD 的技术理念。如果大家对其中的语言... 【**Jetpack**】讲述 Android 持续更新的重大框架集合,并逐个演示重要框架解决的问题和优势6. 【**Jetpack Compose**】带领大家感受 Android 上 UI 开发方式的重大变革## 1.Modern Android Development 官方...

展望 2022 :Android 开发技术动向 | 社区征文

中寻找答案:![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7f26f855519c4db4afc2d4cf48946129~tplv-k3u1fbpfcp-5.jpeg?)- Android OS- 12L- IoT- Kotlin- Jetpack- Jetpack Compose... 跟上一代 M2 相比 M3 的元素面积更大、更便于用户点击;同时圆角的角度更大使得并排的元素之间的间隔更清晰。个性化是 M3 最大的特点,这也是 "You" 的命名来源。Android12 遵循了 M3 的 Dynamic Color 设计原则,系统...

借助 MAD 助力你的 Android 应用开发|社区征文

Android 开发方式发生了很大变化,去年推出的 Jetpack Compose 更是将这种变化推向了新阶段。Goolge 将这些新技术下的开发方式命名为 MAD ,以此区别于旧有的低效的开发方式。MAD 可以指导开发者更高效地开发出优秀... 可以基于作用域函数完成各种初始化工作,就像上面例子那样。这个例子同时也提醒我们过度使用这些作用域函数(或集合操作符),也会影响代码的可读性和可调试性,只有“恰到好处”的使用函数式编程才能真正发挥 Kotlin 的...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

安卓JetpackCompose中的共享元素是如何工作的?-优选内容

10 个问题带你了解 Compose Multiplatform 1.0 |社区征文
正文开始前先统一一下文中的用语:- **compose-jb**:Compose Multiplatform 简称,包含下面三者- **compose-android**:Jetpack Compose- **compose-desktop**:Compose for Desktop- **compose-web**: Compose fo... compose-web 以及 compose-android 三者进行了整合,开发者可以在单个工程中使用同一套 Artifacts 开发出运行在 Android,Desktop(Windows, macOS, LInux)以及 Web 等多端的应用程序,工程中可以实现大部分代码的共享...
MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文
有的时候 Google 会将其翻译成`现代安卓开发`,有的时候又翻译成`新式安卓开发`,个人觉得前者的翻译虽然激进、倒也贴切。下面按照 MAD 的构成要点逐步展开,帮助大家快速了解 MAD 的技术理念。如果大家对其中的语言... 【**Jetpack**】讲述 Android 持续更新的重大框架集合,并逐个演示重要框架解决的问题和优势6. 【**Jetpack Compose**】带领大家感受 Android 上 UI 开发方式的重大变革## 1.Modern Android Development 官方...
展望 2022 :Android 开发技术动向 | 社区征文
中寻找答案:![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7f26f855519c4db4afc2d4cf48946129~tplv-k3u1fbpfcp-5.jpeg?)- Android OS- 12L- IoT- Kotlin- Jetpack- Jetpack Compose... 跟上一代 M2 相比 M3 的元素面积更大、更便于用户点击;同时圆角的角度更大使得并排的元素之间的间隔更清晰。个性化是 M3 最大的特点,这也是 "You" 的命名来源。Android12 遵循了 M3 的 Dynamic Color 设计原则,系统...
借助 MAD 助力你的 Android 应用开发|社区征文
Android 开发方式发生了很大变化,去年推出的 Jetpack Compose 更是将这种变化推向了新阶段。Goolge 将这些新技术下的开发方式命名为 MAD ,以此区别于旧有的低效的开发方式。MAD 可以指导开发者更高效地开发出优秀... 可以基于作用域函数完成各种初始化工作,就像上面例子那样。这个例子同时也提醒我们过度使用这些作用域函数(或集合操作符),也会影响代码的可读性和可调试性,只有“恰到好处”的使用函数式编程才能真正发挥 Kotlin 的...

安卓JetpackCompose中的共享元素是如何工作的?-相关内容

我与 Android 的故事|社区征文

### 1.项目概要:```本文主要记录我本人从事移动开发的工作,作为一名Android工程师的职场故事,从一名入门小白,成为一名中高级工程师的心路例程,帮助自己回望过去展望未来。```### 2.Android初识```2015年,... 有次听到朋友讲起Android系统,很多国产智能手机的操作系统便是Android(安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司...

跳槽、换房、不忘输出,一名 Android 开发者的 2022

`Kotlin` 对于 Android 开发的重要性不言而喻,加上 ***All in Kotlin*** 的技术路线,在工作之余对 Kotlin 的重要特色进行了用法、原理方面的详细学习。- [能说一说 Kotlin 中 lateinit 和 lazy 的区别吗?](https... 今年主要在公司内进行了 3 次分享,分别是:* 非技术的《如何搭建自己的知识系统并持续输出?》* 面向技术的 * 《Practice on Jetpack Compose:*Recreate Flappy Bird game in 3 days*》 * 《Understandin...

最新动态(2024年前)

实验和feature白名单的个数限制放到500 2023年3月02日 V2.4.1版本 创建父子实验时忽略父实验关联的feature信息 测试用户选择器默认拉取前1000条数据 指标dsl新增 property_compose_type 字段 2023年2月24日 V2.4... 是同时测试一个网页的两个或更多部分的变体,以查看哪个组合产生最好的结果。MVT 不是显示哪个页面变体最有效(如在 A/B 测试中),而是识别每个元素的最有效变体并确定元素变体的最佳组合。当前支持实验模式为可视化实...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

函数概览

c_compose 用于组合多个操作,多个操作应均为全局操作函数。 事件检查函数 f_match 判断指定日志字段值是否满足正则表达式 f_search 判断日志中是否有符合检索语句的内容。 事件处理函数 e_output 输出日... f_not_has 判断指定的字段是否不存在。 键值提取函数 ext_sep 基于单个分隔符提取字段值内容。 ext_sepstr 基于分隔字符串提取字段值内容。 ext_json 对指定字段中的 JSON 字符串进行展开操作。 ext_js...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询