harmony 鸿蒙ArkUI子系统Changelog

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

ArkUI子系统Changelog

cl.arkui.1 Toggle组件Switch样式移除宽高比1.8倍限制

访问级别

公开接口

变更原因

a)Toggle组件Switch样式原宽高比固定为1.8倍,导致开发者无法不受限制自定义宽高。现移除1.8倍限制,增强开发者自定义能力。

变更影响

该变更为非兼容性变更。

API version 11及以前,Toggle组件Switch样式宽高比固定为1.8倍,开发者设置宽高比大于1.8倍时以高度为基准,小于1.8倍时以宽度为基准。

例:宽度设置为200vp,高度设置为100vp,则宽度会被重置为180vp,高度保持100vp;宽度设置为180vp,高度设置为150vp,则高度会被重置为100vp,宽度保持180vp;

API version 12及以后,Toggle组件Switch样式宽高比没有限制。

起始API Level

width,height通用属性的起始支持版本为API 7

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

Toggle组件

适配指导

取消组件宽高比例限制, 如果此前设置组件宽高比例大于1.8倍时需要以高度为基准修改业务代码,小于1.8倍时需要以宽度为基准修改业务代码,才能保持原有组件样式。

其他适配请查阅Toggle组件文档进行适配。

cl.arkui.2 Radio组件单选项样式风格增强、支持显示自定义图标

访问级别

公开接口

变更原因

允许用户自定义单选项的选中状态:

1.可以选择不同的样式,如圆饼样式,对勾样式,自定义图标样式。

2.用户自定义图标时,设置选中状态时图标显示,非选中状态时图标不显示。

变更影响

该变更为非兼容性变更。

  • 变更前:默认选中状态DOT(圆圈样式)。
  • 变更后:默认选中状态TICK(对勾样式)。
DOT TICK

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21版本开始。

示例: 该示例实现了自定义选中状态

@Entry
@Component
struct RadioExample {
  @Builder 
  indicatorBuilder() {
    Image($r("app.media.star"))
  }
  build() {
    Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
      Column() {
        Text('Radio1')
        Radio({ value: 'Radio1', group: 'radioGroup',
          indicatorType:RadioIndicatorType.TICK
        }).checked(true)
          .height(50)
          .width(80)
          .onChange((isChecked: boolean) => {
            console.log('Radio1 status is ' + isChecked)
          })
      }
      Column() {
        Text('Radio2')
        Radio({ value: 'Radio2', group: 'radioGroup',
          indicatorType:RadioIndicatorType.DOT
        }).checked(false)
          .height(50)
          .width(80)
          .onChange((isChecked: boolean) => {
            console.log('Radio2 status is ' + isChecked)
          })
      }
      Column() {
        Text('Radio3')
        Radio({ value: 'Radio3', group: 'radioGroup',
          indicatorType:RadioIndicatorType.CUSTOM,
          indicatorBuilder:()=>{this.indicatorBuilder()}
        }).checked(false)
          .height(50)
          .width(80)
          .onChange((isChecked: boolean) => {
            console.log('Radio3 status is ' + isChecked)
          })
      }
    }.padding({ top: 30 })
  }
}

变更的接口/组件

Radio组件

适配指导

请查阅Radio组件文档进行适配。

cl.arkui.3 文本组件的文本选择行为变更

访问级别

公开接口

变更原因

依照UX规范

变更影响

该变更为非兼容性变更。API version 11及以前:

a)当前Text组件长按出现菜单时,旋转屏幕,此时依旧出现菜单。

b)当前Text/TextInput/TextArea/Search/RichEditor组件长按出现菜单,进行复制行为,文本退出选中态。

c)当前TextInput/TextArea/Search/RichEditor组件在手机和平板设备上通过代码选区,只出现选中态,无手柄。

API version 12及以后:

a)当前Text组件长按出现菜单时,旋转屏幕,隐藏菜单,保持选中态。

b)当前TextInput/TextArea/Search/RichEditor组件长按出现菜单时,进行复制行为,隐藏菜单,保持选中态。

c)当前TextInput/TextArea/Search/RichEditor组件在手机和平板设备上通过代码选区,出现选中态和手柄,用户可自定义出现菜单。

变更前 变更后

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

Text/TextInput/TextArea/Search/RichEditor组件。

适配指导

默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响

c1.arkui.4 TextInput组件underline默认样式变更

访问级别

公开接口

变更原因

依照UX规范

变更影响

该变更为非兼容性变更。API version 11及以前,TextInput组件设置underline时,组件出现的时候无圆角,组件获焦失焦后有圆角,且圆角值不同。API version 12及以后,依照UX规范统一默认都设置无圆角。

变更前 变更后

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

TextInput组件。

适配指导

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

cl.arkui.5 AlphabetIndexer组件的默认样式变更

访问级别

公开接口

变更原因

a)当前AlphabetIndexer组件的字母索引条默认字体大小为12vp,依照UX规范修改字母索引条默认字体大小到10vp。

b)当前AlphabetIndexer组件的字母索引条默认字重为Normal,依照UX规范修改字母索引条默认字重到Medium。

c)当前AlphabetIndexer组件的字母索引条选中项文字默认字体大小为12vp,依照UX规范修改字母索引条选中项文字默认字体大小到10vp。

d)当前AlphabetIndexer组件的字母索引条选中项文字默认字重为Normal,依照UX规范修改字母索引条选中项文字默认字重到Medium。

e)当前AlphabetIndexer组件的字母索引条索引项背板圆角默认为4vp,依照UX规范修改字母索引条索引项背板圆角默认为8vp。

f)当前AlphabetIndexer组件的字母索引条背板圆角默认为0vp,依照UX规范修改字母索引条索引项背板圆角默认为12vp。

g)当前AlphabetIndexer组件的字母索引条背板上下padding默认为2vp,依照UX规范修改字母索引条索引项背板上下padding默认为4vp。

h)当前AlphabetIndexer组件的字母索引条pressed状态文字背板颜色默认为’#0c182431’,依照UX规范修改字母索引条pressed状态文字背板颜色默认为’#19182431’。

i)当前AlphabetIndexer组件的弹出窗口默认背板阴影尺寸为DefaultShadowM、依照UX规范变更默认背板阴影尺寸为DefaultShadowL。

j)当前AlphabetIndexer组件的弹出窗口默认背板最大高度为336vp、依照UX规范变更弹出窗口默认背板最大高度为342vp。

k)当前AlphabetIndexer组件的弹出窗口自适应折叠模式默认背板最大高度为224vp、依照UX规范变更弹出窗口自适应折叠模式默认背板最大高度为186vp。

l)当前AlphabetIndexer组件的弹出窗口上下padding默认为0vp、依照UX规范变更弹出窗口上下padding默认为4vp。

m)当前AlphabetIndexer组件的弹出窗口背板圆角默认为16vp,依照UX规范修改弹出窗口背板圆角默认为28vp。

n)当前AlphabetIndexer组件的弹出窗口索引项默认尺寸为56vp、依照UX规范变更弹出窗口索引项默认尺寸为48vp。

o)当前AlphabetIndexer组件的弹出窗口索引项间隔为0vp、依照UX规范变更弹出窗口索引项间隔为4vp。

p)当前AlphabetIndexer组件的弹出窗口索引项背板圆角默认为0vp,依照UX规范修改弹出窗口索引项背板圆角默认为24vp。

q)当前AlphabetIndexer组件的弹出窗口背板颜色默认为’#FFFFFFFF’,依照UX规范修改弹出窗口背板颜色默认为’#66808080’。

r)当前AlphabetIndexer组件的弹出窗口字母部分背板颜色默认为’#FFFFFFFF’,依照UX规范修改弹出窗口字母部分背板颜色默认为’#0c182431’。

s)当前AlphabetIndexer组件的弹出窗口非字母部分背板颜色默认为’#FFFFFFFF’,依照UX规范修改弹出窗口非字母部分背板颜色默认为’#00000000’。

t)当前AlphabetIndexer组件的弹出窗口非字母部分点击时背板颜色默认为0x1A000000,依照UX规范修改弹出窗口非字母部分背板颜色默认为’#0c182431’。

u)当前AlphabetIndexer组件的弹出窗口背板模糊材质默认为NONE,依照UX规范修改弹出窗口背板模糊材质默认为COMPONENT_REGULAR。

变更影响

该变更为非兼容性变更。API version 11及以前,采用当前默认值。API version 12及以后,采用修改后默认值。

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

AlphabetIndexer组件

适配指导

请查阅AlphabetIndexer组件文档进行适配。

cl.arkui.6 AlphabetIndexer组件允许用户自定义AlphabetIndexer的样式风格

访问级别

公开接口

变更原因

允许用户自定义AlphabetIndexer的样式风格:

1、设置AlphabetIndexer索引项背板圆角、AlphabetIndexer背板圆角自适应变化

2、设置AlphabetIndexer提示弹窗索引项背板圆角、AlphabetIndexer提示弹窗背板圆角自适应变化

3、设置AlphabetIndexer提示弹窗首个索引项背板颜色

4、设置AlphabetIndexer提示弹窗背板模糊风格

变更影响

该变更为非兼容性变更。

API version 11及以前,不允许用户自定义AlphabetIndexer索引项背板圆角、提示弹窗索引项背板圆角、提示弹窗首个索引项背板颜色、提示弹窗背板模糊风格。

AlphabetIndexerBefore

API version 12及以后,允许用户自定义AlphabetIndexer索引项背板圆角、提示弹窗索引项背板圆角、提示弹窗首个索引项背板颜色、提示弹窗背板模糊风格。

AlphabetIndexerAfter

API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

示例:

@Entry
@Component
struct AlphabetIndexerSample {
  private arrayA: string[] = ['安']
  private arrayB: string[] = ['卜', '白', '包', '毕', '丙']
  private arrayC: string[] = ['曹', '成', '陈', '催']
  private arrayL: string[] = ['刘', '李', '楼', '梁', '雷', '吕', '柳', '卢']
  private value: string[] = ['#', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
    'H', 'I', 'J', 'K', 'L', 'M', 'N',
    'O', 'P', 'Q', 'R', 'S', 'T', 'U',
    'V', 'W', 'X', 'Y', 'Z']

  build() {
    Stack({ alignContent: Alignment.Start }) {
      Row() {
        List({ space: 20, initialIndex: 0 }){}
        .width('50%')
        .height('100%')

        AlphabetIndexer({ arrayValue: this.value, selected: 0 })
          .popupBackground(0xD2B48C) // 弹出框背景颜色
          .popupBackgroundBlurStyle(BlurStyle.COMPONENT_ULTRA_THICK) // 设置AlphabetIndexer提示弹窗背板模糊风格
          .popupTitleBackground(0x00FF00) // 设置AlphabetIndexer提示弹窗首个索引项背板颜色
          .popupItemBorderRadius(20) // 设置AlphabetIndexer提示弹窗索引项背板圆角
          .itemBorderRadius(5) // 设置AlphabetIndexer索引项背板圆角
          .onSelect((index: number) => {
            console.info(this.value[index] + ' Selected!')
          })
          .onRequestPopupData((index: number) => {
            if (this.value[index] == 'A') {
              return this.arrayA // 当选中A时,弹出框里面的提示文本列表显示A对应的列表arrayA,选中B、C、L时也同样
            } else if (this.value[index] == 'B') {
              return this.arrayB
            } else if (this.value[index] == 'C') {
              return this.arrayC
            } else if (this.value[index] == 'L') {
              return this.arrayL
            } else {
              return [] // 选中其余子母项时,提示文本列表为空
            }
          })
          .onPopupSelect((index: number) => {
            console.info('onPopupSelected:' + index)
          })
      }
      .width('100%')
      .height('100%')
    }
  }
}

变更的接口/组件

AlphabetIndexer组件

适配指导

请查阅AlphabetIndexer组件文档进行适配。

cl.arkui.7 MenuItemGroup组件header、footer对齐方式变更

访问级别

公开接口

变更原因

优化MenuItemGroup组件header、footer的对齐方式,以提供更好的视觉效果。

变更影响

API12变更之前:header、footer与菜单文本左对齐。

MenuItemGroup组件默认值变更前效果图

API12变更之后:header、footer与左侧图标左对齐。当header、footer较长时,变更后,菜单宽度可能自适应变窄。

MenuItemGroup组件默认值变更后效果图

起始API Level

9

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

MenuItemGroup组件。

适配指导

UX默认行为变更,无需适配。

cl.arkui.8 DatePickerDialog列宽比例、picker上下间距、内容与弹窗边距样式变更

访问级别

公开接口

变更原因

修正视觉效果以获得更好的用户体验。

变更影响

该变更为非兼容性变更。

a) DatePickerDialog列宽比例变更

变更前:年/月/日选择器列宽比例为1:1:1;展示时间时,日月/上下午/时/分 选择器列宽比例为12:7:7:7。

变更后:年/月/日选择器列宽比例为3:2:2;展示时间时,日月/上下午/时/分 选择器列宽比例为4:3:2:2。

b) DatePickerDialog内容与弹窗左右边界间距变更

变更前:内容与弹窗左右边界无间距。

变更后:内容与弹窗左右边界有24vp间距。

c) DatePickerDialog中picker上下间距变更

变更前:dialog中datePicker无上下间距。

变更后:dialog中datePicker上下间距为8vp。

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

变更前 变更后

API Level

API Level 8,在API 12进行版本隔离

变更发生版本

从OpenHarmony SDK 5.0.0.21开始。

适配指导

默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。

cl.arkui.9 快捷键接口keyboardShortcut匹配规则变更为严格匹配,匹配成功后拦截后续按键事件处理

访问级别

公开接口

变更原因

快捷键匹配原则过于宽松,例如绑定了CTRL+A的快捷键事件,实际使用CTRL+SHIFT+A依然能成功触发该事件。 快捷键事件被匹配并消费后依然会继续下发,并可能触发后续按键事件,例如被输入法响应。

变更影响

该变更为非兼容性变更。

变更前:绑定的快捷键是当前已触发按键的子集,即可触发快捷键。触发快捷键后,按键事件会继续触发onKeyEvent事件等其他按键事件。

变更后:绑定的快捷键必须与当前触发的按键完全一致,方能触发快捷键。触发快捷键即视为按键已消费,不再触发其他按键事件。

API Level

10

变更发生版本

从OpenHarmony SDK 5.0.0.19开始。

适配指导

快捷键的按键集合严格对应所需要的按键。

cl.arkui.10 onPageHide变更

访问级别

公开接口

变更背景

当前router中会在页面创建之前调用onPageHide生命周期,但是对应页面实际上并没有隐藏。

变更影响

该行为变更为非兼容性变更。

API Level

API Level 7,在API Version 12生效。

变更发生版本

从OpenHarmony SDK 5.0.0.21开始。

变更的接口/组件

涉及接口 onPageHide

API Version 12前:页面生命周期先触发退出页面隐藏onPageHide,再触发进场页面的aboutToAppear

API Version 12后:页面跳转时,先触发进来页面的创建生命周期aboutToAppear,再触发退出页面的onPageHide生命周期。

适配指导

依赖退出页面的onPageHide与进场页面的aboutToAppear生命周期执行的场景可以在aboutToAppear中通过事件通知机制,将触发退出页面的onPageHide中的实现逻辑。

cl.arkui.11 NavDestination生命周期变更

访问级别

公开接口

变更原因

  1. NavDestination组件有转场动画场景和无转场动画场景生命周期不一致。

  2. NavDestination所在自定义组件销毁生命周期早于Destination的销毁生命周期。

变更影响

该变更为非兼容性变更。如果开发者依赖Destination所在外层自定义组件onAboutToDisAppear以及Destination的onDisAppear生命周期执行顺序可能会受到影响。

起始API Level

API Level 10

变更发生版本

从OpenHarmony SDK 5.0.0.21开始。

变更的接口/组件

NavDestination生命周期

变更前:

变更前有动画 变更前无动画
  1. 有动画场景:onAboutToAppear(进场NavDestination页面) -> onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onShown(进场NavDestination页面) -> onAboutToDisAppear(退场NavDestination页面) -> onDisAppear(退场NavDestination页面)。

  2. 无动画场景: onAboutToAppear(进场NavDestination页面) -> onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onAboutToDisAppear(退场NavDestination页面) -> onDisAppear(退场NavDestination页面)-> onShown(进场NavDestination页面)。

变更后: onAboutToAppear(进场NavDestination页面)->onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onShown(进场NavDestination页面) -> onDisAppear(退出NavDestination页面) -> onAboutToDisAppear(退出NavDestination页面)。

适配指导

依赖进场页面的aboutToAppear与退场页面aboutToDisAppear执行时间先后顺序的场景,可以将aboutToDisAppear生命周期转到willDisAppear生命周期中或者Navigation路由拦截setInterception的didShow回调中处理。

cl.arkui.12 select组件样式变更

访问级别

公开接口

变更原因

提供小型化Select组件下拉按钮,相比于正常尺寸更小,以满足开发者在不同场景下的需求,获得更好的用户体验。

变更影响

该变更为非兼容性变更。

  1. 新增加controlSize设置select下拉按钮默认尺寸(NORMAL、SMALL)

涉及属性列表:

属性 NORMAL 组件 SMALL 组件
背板高度 40vp 28vp
背板最小宽度 68vp 56vp
背板圆角 20vp 14vp
图标高度 24vp 20vp
图标宽度 12vp 10vp
图标间距 上间距8vp 、右间距16vp、下间距8vp 上间距4vp 、右间距12vp、下间距4vp
文本大小 16fp 14fp
文本间距 上间距8vp 、左间距16vp、下间距8vp 上间距4vp 、左间距12vp、下间距4vp

变更前,NORMAL的背板最小宽度是66vp;

select_min_width_66vp_api11

变更后,NORMAL的背板最小宽度是68vp;

select_min_width_68vp_api12

  1. 修改select下拉按钮默认颜色,

变更前,默认背景颜色是系统资源中的ohos_id_color_card_bg

select_default_backgroundColor_api11

变更后,默认背景颜色是系统资源中的ohos_id_color_button_normal

select_default_backgroundColor_api12

  1. controlSize、width、height接口作用优先级:

1)如果开发者只设置了width和height,当文字大小设置的是比较大的值的时候,文字超出组件大小,且以省略号方式显示;

2)如果开发者只设置了controlSize,没有设置width和height,组件宽高自适应文字,文字不超出组件,并设置最小宽度minWidth和最小高度minHeight;

3)如果controlSize、width、height接口都设置了,width和height设置的值生效,但如果width和height设置的值小于controlSize设置的最小宽度minWidth和最小高度minHeight,width和height设置的值不生效,宽高仍保持controlSize设置的最小宽度minWidth和最小高度minHeight。

  宽度和高度随字体大小自适应示意图:

  ![select_adaptation](figures/select_adaptation.gif)
  1. disabled状态的select下拉按钮背景色的opacity:

变更前,disabled状态的select下拉按钮背景色不透明。

select_disabled_opacity_api11

变更后,disabled状态的select下拉按钮背景色与字体的opacity一致。

select_disabled_opacity_api12

起始 API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

Select组件

适配指导

请查阅select组件文档进行适配。

cl.arkui.13 富文本的SetSelection接口,光标行为变更

访问级别

公开接口

变更原因

依照UX规范

变更影响

该变更为非兼容性变更。API version 11及以前:

SetSelection接口start=end!=-1时,将光标移动到start位置。

API version 12及以后:

SetSelection接口start=end!=-1时,视为选中失败,不改变光标位置。

变更前 变更后

起始 API Level

11

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

RichEditor组件。

适配指导

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

cl.arkui.14 NavDestination标题栏按钮默认背板、标题字体字号等默认样式变更

访问级别

公开接口

变更原因

UX样式变更

变更影响

该变更为非兼容性变更,只影响NavDestination组件的默认样式。

  • 变更前

    1. NavDestination标题栏按钮无背板。
    2. NavDestination标题栏主标题字重为MEDIUM。
  • 变更后

    1. NavDestination标题栏按钮增加圆形背板。
    2. NavDestination标题栏主标题字重为BOLD。
    3. NavDestination默认返回按钮图标更新。

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

变更前 变更后

起始 API Level

API 9

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

NavDestination组件。

适配指导

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

cl.arkui.15 EditableTitleBar默认样式变化

访问级别

公开接口

变更原因

UX样式增强

变更影响

该变更为非兼容性变更。

变更前: 1. 主标题字重为Regular; 2. 图标大小为24*24; 3. 图标热区大小为48*48,圆角方形; 4. 标题栏高度为56vp; 5. 标题与左侧图标间距12vp。

变更后: 1. 主标题字重为Bold; 2. 图标大小为20*20; 3. 图标增加40*40灰色圆形背板; 4. 标题栏最小高度为56vp,标题上下间距4vp,超过56vp时,高度自适应; 5. 标题与左侧图标间距8vp。

back图标样式变更。

变更前后对比效果,如下图所示: |变更前|变更后| |———|———| |||

起始API Level

10

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

EditableTitleBar

适配指导

默认效果变更,无需适配。但应注意变更后的默认效果是否符合预期。

cl.arkui.16 Navigation默认样式变化

访问级别

公开接口

变更原因

UX样式增强

变更影响

该变更为非兼容性变更。

变更前: 1. Full、Free模式非自定义主标题字重为Medium; 2. Menu图标大小为24*24; 3. Menu图标热区大小为48*48,圆角方形; 4. 标题栏左、右间距为24vp; 5. Free模式收齐时,非自定义主标题字号为24fp。

变更后: 1. Full、Free模式非自定义主标题字重为Bold; 2. Menu图标大小为20*20; 3. Menu图标增加40*40灰色圆形背板; 4. 标题栏左、右间距为16vp; 5. Free模式收齐时,非自定义主标题字号为26fp。

变更前后对比效果,如下图所示: |变更前|变更后| |———|———| ||| |||

起始API Level

8

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

EditableTitleBar

适配指导

默认效果变更,无需适配。但应注意变更后的默认效果是否符合预期。

cl.arkui.17 TimePicker时分秒前置零默认样式变更

访问级别

公开接口

变更原因

UX样式变更

变更影响

该变更为非兼容性变更,只影响TimePicker组件的默认样式。

  • 变更前 TimePicker组件12小时制小时默认有前置零。

  • 变更后 TimePicker组件12小时制小时默认没有前置零。

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

变更前 变更后

起始 API Level

API 12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

TimePicker组件。

适配指导

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

cl.arkui.18 RichEditor组件symbol动效变更

访问级别

公开接口

变更原因

依照UX规范

变更影响

该变更为非兼容性变更。

变更前: RichEditor组件在编辑态支持播放symbol动效。

变更后: RichEditor组件在编辑态不支持播放symbol动效。

起始API Level

11

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

RichEditor

适配指导

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

cl.arkui.19 allowDrop校验变更

访问级别

公开接口

变更原因

allowDrop用于接受方组件指定自己支持的拖拽数据类型,并将该值应用到拖拽方组件的角标显示上。但没有严格执行不匹配时的禁止落入逻辑,仍然会回调开发者的onDrop并传递数据。

变更影响

该变更为不兼容变更。

变更前: 当allowDrop声明的数据类型与拖拽组件的数据类型完全不匹配时,仍然会回调开发者设置的onDrop并传递数据。

变更后: 当allowDrop声明的数据类型与拖拽组件的数据类型完全不匹配时,不会回调开发者设置的onDrop。

起始API Level

12

变更发生版本

从OpenHarmony SDK 5.0.0.21 版本开始。

变更的接口/组件

allowDrop

适配指导

  1. 以下两种情况无影响,无需适配:

    (1)未配置allowDrop属性,系统默认其可处理所有类型数据。

    (2)配置了数据类型,且onDrop中也可处理配置的数据类型。

  2. 以下情况会受到影响,需适配:

    配置了allowDrop属性,并声明了一些数据类型。但是,onDrop会对未声明过的数据类型进行处理,可在allowdrop中增加onDrop需要处理的数据类型声明。

    示例:

    // xxx.ets
    
    
    @Entry
    @Component
    struct ImageExample {
      @State uri: string = ""
      @State AblockArr: string[] = []
      @State BblockArr: string[] = []
      @State AVisible: Visibility = Visibility.Visible
      @State dragSuccess :Boolean = false
      @State dragDataTypes: UniformDataType[]|null = [ null ]
    
    
      build() {
        Column() {
          Text('Image拖拽')
            .fontSize('30dp')
          Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceAround }) {
            Image($r('app.media.icon'))
              .width(100)
              .height(100)
              .border({ width: 1 })
              .visibility(this.AVisible)
              .draggable(true)
              .onDragEnd((event: DragEvent) => {
                let ret = event.getResult();
                if(ret == 0) {
                  console.log("enter ret == 0")
                  this.AVisible = Visibility.Hidden;
                } else {
                  console.log("enter ret != 0")
                  this.AVisible = Visibility.Visible;
                }
              })
          }
          .margin({ bottom: 20 })
          Row() {
            Column(){
              List(){
                ForEach(this.AblockArr, (item:string, index) => {
                  ListItem() {
                    Image(item)
                      .width(100)
                      .height(100)
                      .border({width: 1})
                  }
                  .margin({ left: 30 , top : 30})
                }, (item:string) => item)
              }
              .height('90%')
              .width('100%')
              .allowDrop(this.dragDataTypes)
              .onDrop((event?: DragEvent, extraParams?: string) => {
                this.uri = JSON.parse(extraParams as string).extraInfo;
                this.AblockArr.splice(JSON.parse(extraParams as string).insertIndex, 0, this.uri);
                console.log("ondrop not udmf data");
              })
              .border({width: 1})
            }
            .height("50%")
            .width("45%")     
          }
        }.width('100%')
      }
    }
    

你可能感兴趣的鸿蒙文章

harmony 鸿蒙分布式数据对象变更说明

harmony 鸿蒙分布式数据管理子系统Changelog

0  赞