harmony 鸿蒙ArkUI子系统Changelog

  • 2025-06-16
  • 浏览 (5)

ArkUI子系统Changelog

cl.arkui.1 Tabs组件的页签可滚动且为非子页签样式时增加页签默认切换动效

访问级别

公开接口

变更原因

快速连续切换页签时,页签产生跳变现象,视觉效果不佳。

变更影响

该变更为兼容性变更。

变更前:Tabs组件的barMode为BarMode.Scrollable,TabContent组件的tabBar为子页签样式时有默认切换动效,即切换页签后,选中页签执行动画平移至tabBar中间位置。但非子页签样式时无默认切换动效,即切换页签后,选中页签立即跳变至tabBar中间位置。

变更后:Tabs组件的barMode为BarMode.Scrollable,TabContent组件的tabBar为任意页签样式时均有默认切换动效,切换动效的时长为Tabs组件的animationDuration属性值。

变更前 变更后

起始API Level

7

变更发生版本

从OpenHarmony SDK 5.0.0.36开始。

变更的接口/组件

Tabs组件

适配指导

若希望关闭页签的默认切换动效,可设置Tabs组件的animationDuration属性值为0,但同时TabContent页面的默认切换动效也会被关闭。示例代码如下:

@Entry
@Component
struct TabsSample {
  @State currentIndex: number = 0;

  @Builder TabBuilder(index: number, name: string) {
    Text(name)
      .fontColor(this.currentIndex === index ? Color.White : Color.Black)
      .fontSize(this.currentIndex === index ? 18 : 16)
      .fontWeight(this.currentIndex === index ? 500 : 400)
      .textAlign(TextAlign.Center)
      .width(100)
      .height(48)
      .margin({ left: 4, right: 4 })
      .backgroundColor(this.currentIndex === index ? '#007DFF' : '#F1F3F5')
      .borderRadius(24)
  }

  build() {
    Column() {
      Tabs({ index: this.currentIndex }) {
        TabContent() {
          Column().width('100%').height('100%').backgroundColor('#00CB87')
        }.tabBar(this.TabBuilder(0, 'green'))

        TabContent() {
          Column().width('100%').height('100%').backgroundColor('#007DFF')
        }.tabBar(this.TabBuilder(1, 'blue'))

        TabContent() {
          Column().width('100%').height('100%').backgroundColor('#FFBF00')
        }.tabBar(this.TabBuilder(2, 'yellow'))

        TabContent() {
          Column().width('100%').height('100%').backgroundColor('#E67C92')
        }.tabBar(this.TabBuilder(3, 'pink'))
      }
      .height(300)
      .barMode(BarMode.Scrollable, { margin: 16 })
      .fadingEdge(false)
      .animationDuration(0)
      .onChange((index: number) => {
        this.currentIndex = index
      })
    }.width('100%')
  }
}

cl.arkui.2 Refresh组件promptText参数设置为undefined时清空文本内容

访问级别

公开接口

变更原因

Refresh组件通过promptText参数可传入文本字符串显示在刷新区域,该参数设置为undefined时未清空文本内容,不符合ArkUI通用规范,变更后开发者可设置该参数为undefined清空文本内容。

变更影响

该变更为不兼容变更。

变更前,promptText参数设置为undefined时会保持当前值不变,刷新区域显示对应文本内容。

变更后,promptText参数设置为undefined时会清空当前文本内容,刷新区域不显示文本内容。

变更前 变更后
Refresh_Before Refresh_After

起始API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.36开始。

变更的接口/组件

Refresh组件promptText参数

适配指导

开发者需要判断变更后promptText参数设置undefined时清空文本内容后的效果是否符合预期,如不符合可通过对Refresh组件promptText参数设置期望值以达到预期。

@Entry
@Component
struct RefreshExample {
  @State isRefreshing: boolean = false
  @State arr: String[] = ['0', '1', '2', '3', '4','5','6','7','8','9','10']
  @State promptText: string|undefined = "Loading..."

  build() {
    Column() {
      Refresh({ refreshing: $$this.isRefreshing ,
        promptText: this.promptText  // 设置刷新区域显示文本内容,设置为undefined时清空文本内容
      }) {
        List() {
          ForEach(this.arr, (item: string) => {
            ListItem() {
              Text('' + item)
                .width('80%').height(100).fontSize(16).margin(10)
                .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
            }
          }, (item: string) => item)
        }
        .width('100%')
        .height('100%')
        .alignListItem(ListItemAlign.Center)
        .scrollBar(BarState.Off)
      }
      .backgroundColor(0x89CFF0)
      .refreshOffset(96)
    }
  }
}

cl.arkui.3 Popup(气泡组件)UX样式变更

访问级别

公开接口

变更原因

Popup(气泡组件)UX样式不符合规范

变更影响

该变更为不兼容变更。

变更前: 1、按钮与文本左侧没有对齐 2、按钮上方与文本下方间距不足8vp

advanced_popup_before

变更后: 1、按钮与文本左侧对齐 2、按钮上方与文本下方间距8vp

advanced_popup_after

起始API Level

API 11

变更发生版本

从OpenHarmony SDK 5.0.0.36开始。

变更的接口/组件

Popup(气泡组件)

适配指导

默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。

cl.arkui.4 Menu(菜单组件)组件内borderRadius方法支持设置LocalizedBorderRadiuses类型参数

访问级别

公开接口

变更原因

bindMenu和bindContextMenu组件内borderRadius方法不支持设置LocalizedBorderRadiuses类型参数

变更影响

该变更为不兼容变更。

变更前: 在menu内使用borderRadius方法设置菜单圆角时,不支持LocalizedBorderRadiuses类型的参数。

menu_before

变更后: 在menu内使用borderRadius方法设置菜单圆角时,支持LocalizedBorderRadiuses类型的参数,并支持镜像。

menu_after

起始API Level

API 12

变更发生版本

从OpenHarmony SDK 5.0.0.36开始。

变更的接口/组件

Menu(菜单组件)

适配指导

开发者可以在menu内通过borderRadius接口设置菜单圆角,且当参数类型为LocalizedBorderRadiuses类型时,支持镜像能力。

import { LengthMetrics } from '@ohos.arkui.node';

@Entry
@Component
struct Index {

  @Builder
  MyMenu(){
    Menu() {
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
      MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
        .enabled(true)
    }
  }

  build() {
    Row() {
      Column() {
        Text('click to show menu')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .bindMenu(this.MyMenu, {
        enableArrow: true,
        // 设置圆角
        borderRadius: { topStart: LengthMetrics.vp(20), bottomStart: LengthMetrics.vp(60) }
      })
      .width('100%')
    }
    .height('100%')
  }
}

cl.arkui.5 setWindowSystemBarEnable 接口废弃变更

访问级别

公开接口

变更原因

该接口有Promise和callback两种调用方式,使用callback方式的接口错误码不满足ArkTS API异常处理规范,标废弃,使用同名的Promise接口代替。

变更影响

该变更为兼容性变更。

从API version 12开始,setWindowSystemBarEnable的callback方式调用将不推荐使用,推荐使用Promise方式的同名接口。

起始 API Level

API 9

变更发生版本

从OpenHarmony SDK 5.0.0.36版本开始。

变更的接口/组件

Window#setWindowSystemBarEnable(names: Array<‘status’|‘navigation’>, callback: AsyncCallback&lt;void&gt;): void。

适配指导

不涉及

cl.arkui.6 setWindowLayoutFullScreen 接口废弃变更

访问级别

公开接口

变更原因

该接口有Promise和callback两种调用方式,使用callback方式的接口错误码不满足ArkTS API异常处理规范,标废弃,使用同名的Promise接口代替。

变更影响

该变更为兼容性变更。

从API version 12 setWindowLayoutFullScreen的callback方式调用将不推荐使用,推荐使用Promise方式的同名接口。

起始 API Level

API 9

变更发生版本

从OpenHarmony SDK 5.0.0.36版本开始。

变更的接口/组件

Window#setWindowLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback&lt;void&gt;): void。

适配指导

不涉及

cl.arkui.7 setWindowSystemBarProperties 接口废弃变更

访问级别

公开接口

变更原因

该接口有Promise和callback两种调用方式,使用callback方式的接口错误码不满足ArkTS API异常处理规范,标废弃,使用同名的Promise接口代替。

变更影响

该变更为兼容性变更。

从API version 12开始,setWindowSystemBarProperties的callback方式调用将不推荐使用,推荐使用Promise方式的同名接口。

起始 API Level

API 9

变更发生版本

从OpenHarmony SDK 5.0.0.36版本开始。

变更的接口/组件

Window#setWindowSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback&lt;void&gt;): void。

适配指导

不涉及

cl.arkui.8 Toast弹窗UX样式变更

访问级别

公开接口

变更原因

UX规格变更

变更影响

该变更为不兼容变更。

  • API version 11及之前,Toast弹窗背景色为深黑色、字色为白色,最大高度没有限制,界面语超长没有截断。

  • API version 12及之后,Toast弹窗在常规亮色显示风格下toast透明模糊背景、字色黑色,暗色显示风格下透明模糊背景、字色白色。
    Toast的最大高度 =(屏幕高度-信号栏-导航条)*0.65,最大宽度:基于屏幕宽度-2侧margin,根据容器自适应,最大到400vp不再变化。
    界面语超长逐级缩小字号至12fp,超出截断。

  • API version 11及之前对比API version 12及之后属性变更如下

属性名 变更前 变更后
背景色 bg_color COMPONENT_ULTRA_THICK
圆角 toast_border_radius corner_radius_level9
padding-left toast_padding_horizontal padding_level8
padding-top toast_padding_vertical padding_level4
padding-right toast_padding_horizontal padding_level8
padding-bottom toast_padding_vertical padding_level4
字体大小 text_font_size Body_M
字体颜色 text_color font_primary
字重 toast_text_font_weight font_weight_regular

示例如下: 如下图所示为变更前后效果对比:

变更前 变更后

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.36 版本开始。

变更的接口/组件

promptAction.showToast

适配指导

UX默认行为变更,无需适配。可以通过promptAction中ShowToastOptions接口自定义Toast背景色、字色等。

cl.arkui.9 QRCode深浅色适配修改

访问级别

公开接口

变更原因

QRCode在深色模式下使用默认颜色生成的二维码无法被正常识别。

变更影响

该变更为不兼容变更。

变更前:在深色模式下,QRCode生成的二维码背景颜色为黑色,图案颜色为白色。

变更后:在深色模式下,QRCode生成的二维码背景颜色为白色,图案颜色为黑色,与浅色模式相同。

起始API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.36开始。

变更的接口/组件

QRcode组件

适配指导

默认效果变更,无需适配。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙程序访问控制子系统变更说明

harmony 鸿蒙ArkCompiler子系统Changelog

harmony 鸿蒙ArkGraphics2D变更说明

harmony 鸿蒙ArkWeb子系统Changelog

harmony 鸿蒙包管理子系统变更说明

harmony 鸿蒙媒体子系统Changelog

harmony 鸿蒙网络管理子系统Changelog

harmony 鸿蒙文件子系统Changelog

harmony 鸿蒙安全子系统变更说明

harmony 鸿蒙USB服务子系统Changelog

0  赞