ArkTS-共享元素转场动画

news2024/11/22 16:34:09

在这里插入图片描述

共享元素转场动画

在不同页面间,有使用相同的元素(例如同一幅图)的场景,可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性,可为它们添加共享元素转场动画。如果相同元素在不同页面间的大小有明显差异,即可达到放大缩小视图的效果。

当路由进行切换时,可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。

根据sharedTransitionOptions中的type参数,共享元素转场分为Exchange类型的共享元素转场和Static类型的共享元素转场

Exchange类型的共享元素转场

  • 交换型的共享元素转场,需要两个页面中,存在通过sharedTransition函数配置为相同id的组件,它们称为共享元素。
  • 这种类型的共享元素转场适用于两个页面间相同元素的衔接,会从起始页共享元素的位置、大小过渡到目标页的共享元素的位置、大小。如果不指定type,默认为Exchange类型的共享元素转场,这也是最常见的共享元素转场的方式。
  • 使用Exchange类型的共享元素转场时,共享元素转场的动画参数由目标页options中的动画参数决定。

Static类型的共享元素转场

  • 静态型的共享元素转场通常用于页面跳转时,标题逐渐出现或隐藏的场景,只需要在一个页面中有Static的共享元素,不能在两个页面中出现相同id的Static类型的共享元素。
  • 在跳转到该页面(即目标页)时,配置Static类型sharedTransition的组件做透明度从0到该组件设定的透明度的动画,位置保持不变。在该页面(即起始页)消失时,做透明度逐渐变为0的动画,位置保持不变。
  • 共享元素转场的动画参数由该组件sharedTransition属性中的动画参数决定。

示例

  • 文字配置Static类型的共享元素转场
  • 图片配置Exchange类型的共享元素转场,共享元素id为"sharedImage"

SharedTransition1

import router from '@ohos.router'

@Entry
@Component
struct SharedTransition1 {
  @State message: string = 'Hello World'

  build() {
    Column() {
      Image($r('app.media.icon'))
        .width(50)
        .height(50)
        .opacity(.3)
        .borderRadius(50)
    }
    .width('100%')
    .height('100%')
    .padding(30)
    .alignItems(HorizontalAlign.Start)
    .sharedTransition('sharedImage', {
      duration: 1000,
      curve: Curve.Linear
    })
    .onClick(() => {
      router.pushUrl({
        url: "pages/SharedTransition2"
      })
    })
  }
}

SharedTransition2

@Entry
@Component
struct SharedTransition2 {
  @State message: string = 'Hello World'

  build() {

    Column() {
      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .sharedTransition('text', {
          duration: 500,
          curve: Curve.Linear,
          type: SharedTransitionEffectType.Static
        })
      Image($r('app.media.icon'))
        .width(150)
        .height(150)
        .opacity(1)
        .borderRadius(75)
        .sharedTransition('sharedImage', {
          duration: 500,
          curve: Curve.Linear
        })
    }
    .width('100%')
    .height('100%')
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1263030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零信任安全:远程浏览器隔离(RBI)的重要性

引言 在当今数字化时代,网络安全已成为个人和企业关注的焦点。随着网络攻击和恶意软件的不断增加,远程浏览器隔离(RBI)SAAS系统变得至关重要。本文将深入探讨远程浏览器隔离系统的重要性,以及它如何帮助用户保护其网络免受恶意软件和网络攻击…

【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

台式机加独显引发的故事

弄到一块NVIDIA1660显卡,想要加到台式机,枯树逢春;中间引发不少事情,记录下来共勉 1.台式机插入显卡 1)拆开主机后部的接口片 2)显卡插入显卡巢,很内存条结构类似(长短布局&#xff…

zblog插件-zblog采集插件下载

在当今数字化的时代,博客已经成为人们分享思想、经验和知识的重要平台。而对于使用zblog博客系统的用户来说,充实博客内容是提高用户体验和吸引读者的不二法门。然而,手动收集内容对于博主来说既费时又繁琐。在这个背景下,zblog插…

线程为什么比进程的切换效率高

1.进程切换为什么比线程切换效率低呢? 进程都有自己的虚拟地址空间,把虚拟地址转换为物理地址需要查找页表,页表查找是一个很慢的过程,因此通常使用Cache来缓存常用的地址映射,这样可以加速页表查找,这个Cache就是TL…

【Cmake】Cmake基础学习

CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…

【Unity3D】MAX聚合广告SDK——Pangle广告接入(成了!成了!)

Pangle, App Monetization Simplified 注册 登录 创建应用 创建广告单元 将其应用ID和广告ID关联到MAX广告。 下载Pangle Unity Plugin包,新建一个空工程(很重要) Unity版本2019.4.0f1 gradle plugin 4.2.0 gradle版本6.7.1 build_tools 34.…

【Java】7. 类型转换和类型判断

7. 类型转换 7.1 基本类型转换 顺箭头:隐式转换(自动) 逆箭头:强制转换(可能造成精度丢失) byte a 10; int b a; int c 1000; byte d (byte) c; System.out.println(d); // -24 7.2 包装类型与基…

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…

印刷企业建设数字工厂管理系统的工作内容有哪些

随着科技的不断进步,数字工厂管理系统在印刷企业中的应用越来越广泛。这种系统可以有效地整合企业内外资源,提高生产效率,降低生产成本,并为印刷企业提供更好的业务运营与管理模式。本文将从以下几个方面探讨印刷企业建设数字工厂…

搭建一个可以发送邮箱验证码的接口,内含前端处理 接口返回、请求处理

环境搭建 在node安装好的情况下(一般vue环境有的node也有 没有可以使用winr回车输入node -v 有版本号则已经安装好 找一个空文件夹作为此项目文件夹 点击上面的地址栏输入cmd回车 输入npm init -y 再输入npm install nodemailer安装发送邮件的插件 环境配置 使用v…

别做无用功!了解伦敦银交易指标的分类

在伦敦银投资中,我们都喜欢使用技术指标来帮助我们判断市场行情、预测银价点位。其实,伦敦银的技术指标是有不同分类的,我们了解主要的几类,这样在交易中才不至于将相同类型的叠加在一起,这样容易降低决策效率。 分类一…

运维 | 四层和七层负载均衡介绍

关注: CodingTechWork 负载均衡 负载均衡介绍 概念 负载均衡是建立在现有的网络结构之上,提供一种廉价且透明的方式进行网络设备和服务器带宽的扩展,从而增加吞吐量,加强应用服务的数据处理能力,有效提高网络的灵活性和可用性。…

【问题系列】消费者与MQ连接断开问题解决方案(二)

1. 问题描述 当使用RabbitMQ作为中间件,而消费者为服务时,可能会出现以下情况:在长时间没有消息传递后,消费者与RabbitMQ之间出现连接断开,导致无法处理新消息。解决这一问题的方法是重启Python消费者服务,…

Android12之logcat日志显示颜色和时间(一百六十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【Unity细节】为什么加载精灵图集直接导致Unity引擎崩溃

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

二十七、RestClient查询文档

目录 一、MatchALL查询 二、Match查询 三、bool查询 四、排序和分页 五、高亮 一、MatchALL查询 Testvoid testMatchAll() throws IOException { // 准备Request对象SearchRequest request new SearchRequest("hotel"); // 准备DSLrequest.source().q…

快速评估自己是否适合QC/QA/敏捷教练?35岁以上的人必看!

一、QC岗位 1:QC现状分析: 在测试领域市场上有QA和QC之分,QC主要职责负责测试,包括功能、性能、自动化、安全等,QA主要负责项目管理的相关工作,有的公司岗位QA/QC放到一起,如果放到一个人身上…

IDEA删除的文件怎么找回更新

一、 查找本地历史记录IDEA在进行代码版本管理时,会自动创建本地历史记录,如果我们误删了文件,可以通过查找本地历史记录来找回文件。 1.在项目中,选中被删文件的父级目录,“File”->“Local History”->“Show…

UData+StarRocks在京东物流的实践 | 京东物流技术团队

1 背景 数据服务与数据分析场景是数据团队在数据应用上两个大的方向,行业内大家有可能会遇到下面的问题: 1.1 数据服务 烟囱式开发模式:每来一个需求开发一个数据服务,数据服务无法复用,难以平台化,技术…