鸿蒙5.0开发进阶:ArkTS组件-共享元素转场 (sharedTransition)

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


共享元素转场 (sharedTransition)

可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。sharedTransition仅发生在页面路由(router)跳转时。

说明

从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

属性

名称参数类型是否必填参数描述
idstring两个页面中id值相同且不为空字符串的组件即为共享元素,在页面转场时可显示共享元素转场动效。
optionssharedTransitionOptions共享元素转场动画参数。

说明

type为SharedTransitionEffectType.Exchange时motionPath才会生效。

type为SharedTransitionEffectType.Exchange时,效果为对匹配的共享元素产生位置、大小的过渡(可通过配置组件的border观察),不支持内容的过渡效果。例如,Text组件在两个页面上使用不同的fontSize属性值,即绘制内容有大小差异,在sharedTransition动画结束后的最后一帧,Text的fontSize效果会突变为跳转目标页fontSize的效果。

sharedTransitionOptions

元服务API: 从API version 11开始,该接口支持在元服务中使用。

名称参数类型是否必填参数描述
durationnumber

描述共享元素转场动效播放时长。

默认值:1000。

单位:毫秒。

curveCurve | string | ICurve10+

动画曲线。

默认值:Curve.Linear

delaynumber

延迟播放时间。

默认值:0。

单位:毫秒。

motionPathMotionPathOptions运动路径信息。
zIndexnumber设置Z轴。
typeSharedTransitionEffectType

动画类型。

默认值:SharedTransitionEffectType.Exchange。

示例

示例代码为点击图片跳转页面时,显示共享元素图片的自定义转场动效。

// xxx.ets
@Entry
@Component
struct SharedTransitionExample {
  @State active: boolean = false

  build() {
    Column() {
      Navigator({ target: 'pages/PageB', type: NavigationType.Push }) {
        Image($r('app.media.ic_health_heart')).width(50).height(50)
          .sharedTransition('sharedImage', { duration: 800, curve: Curve.Linear, delay: 100 })
      }.padding({ left: 20, top: 20 })
      .onClick(() => {
        this.active = true
      })
    }
  }
}
// PageB.ets
@Entry
@Component
struct pageBExample {
  build() {
    Stack() {
      Image($r('app.media.ic_health_heart')).width(150).height(150)
        .sharedTransition('sharedImage', { duration: 800, curve: Curve.Linear, delay: 100 })
    }.width('100%').height('100%')
  }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值