MiniX自绘渲染跨平台框架
  • 框架说明
  • 声明式开发范式
  • 内置Api
指南
接口
  • Minix CLI
示例
  • 类Web框架

    • 框架说明
    • 类Web开发范式
    • 内置Api
  • 指南
  • 组件
  • 接口
  • 示例
  • 规范
  • DophinHybrid

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • DolphinWeex

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • 发布消息
  • 常见问题
  • 更新日志
  • 框架说明
  • 声明式开发范式
  • 内置Api
指南
接口
  • Minix CLI
示例
  • 类Web框架

    • 框架说明
    • 类Web开发范式
    • 内置Api
  • 指南
  • 组件
  • 接口
  • 示例
  • 规范
  • DophinHybrid

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • DolphinWeex

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • 发布消息
  • 常见问题
  • 更新日志
  • 组件通用信息

  • 基础组件

  • 容器组件

  • 媒体组件

  • 绘制组件

  • 画布组件

  • 动画

    • 属性动画
    • 显式动画
    • 转场动画

      • 页面间转场
      • 组件内转场
        • 属性
        • 示例
      • 共享元素转场
    • 路径动画
    • 矩阵变换
    • 插值计算
  • 全局 UI 方法

  • 文档中涉及到的内置枚举值
  • 类型定义

# 组件内转场

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

组件转场主要通过transition属性进行配置转场参数,在组件插入和删除时进行过渡动效,主要用于容器组件子组件插入删除时提升用户体验(需要配合animateTo才能生效,动效时长、曲线、延时跟随animateTo中的配置)。

# 属性

名称 参数类型 默认值 参数描述
transition Object - 所有参数均为可选参数,详细描述见transition入参说明。
  • transition入参说明
    参数名称 参数类型 默认值 必填 参数描述
    type TransitionType TransitionType.All 否 默认包括组件新增和删除。
    >  说明:
    > 不指定Type时说明插入删除使用同一种效果。
    opacity number 1 否 设置组件转场时的透明度效果,为插入时起点和删除时终点的值。
    translate {
    x? : number,
    y? : number,
    z? : number
    }
    - 否 设置组件转场时的平移效果,为插入时起点和删除时终点的值。
    说明:
    > x、y、z分别是横向、纵向、竖向的平移距离
    scale {
    x? : number,
    y? : number,
    z? : number,
    centerX? : number,
    centerY? : number
    }
    - 否 设置组件转场时的缩放效果,为插入时起点和删除时终点的值。设置组件转场时的平移效果,为插入时起点和删除时终点的值。
    说明:
    > x、y、z分别是横向、纵向、竖向放大倍数(或缩小到原来的多少)
    > centerX、centerY缩放中心点
    > 中心点为0时,默认的是组件的左上角
    rotate {
    x?: number,
    y?: number,
    z?: number,
    angle?: Angle,
    centerX?: Length,
    centerY?: Length
    }
    - 否 设置组件转场时的旋转效果,为插入时起点和删除时终点的值。
    说明:
    > x、y、z分别是横向、纵向、竖向的旋转向量
    > centerX,centerY指旋转中心点
    > 中心点为0时,默认的是组件的左上角

# 示例

示例功能通过一个Button控制第二个Button的出现和消失,并通过transition配置第二个Button出现和消失的过场动画。

// xxx.ets
@Entry
@Component
struct TransitionExample {
  @State btn1: boolean = false
  @State show: string = "show"
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center,}) {
      Button(this.show).width(80).height(30).backgroundColor(0x317aff).margin({bottom:50})
        .onClick(() => {
          animateTo({ duration: 1000 }, () => {
            this.btn1 = !this.btn1
            if(this.btn1){
              this.show = "hide"
            }else{
              this.show = "show"
            }
          })
        })
      if (this.btn1) {
        // 插入和删除配置为不同的过渡效果
        Button() {
          Image($r('app.media.bg1')).width("80%").height(300)
        }.transition({ type: TransitionType.Insert, scale : {x:0,y:1.0} })
        .transition({ type: TransitionType.Delete, scale: { x: 1.0, y: 0.0 } })
      }
    }.height(400).width("100%").padding({top:100})
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

zh-cn_image_0000001174582850