1# ArkUI子系统Changelog
2
3## cl.arkui.1 bindMenu新增指向性菜单样式
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11UX规格增强
12
13**变更影响**
14
15该变更为非兼容性变更。
16
17变更前:在bindMenu的MenuOptions中将enableArrow属性设为true时,不展示指向性菜单样式。
18
19变更后:在bindMenu的MenuOptions中将enableArrow属性设为true且菜单的大小和位置足以放置箭头时,会展示指向性菜单样式。
20
21**API Level**
22
23enableArrow、arrowOffset属性的起始支持版本为API version 10。
24
25**变更发生版本**
26
27从OpenHarmony SDK 5.0.0.23开始。
28
29**适配指导**
30
31如果不需要bindMenu展示指向性菜单样式,在bindMenu的MenuOptions中不设置enableArrow属性或将enableArrow属性设置为false;
32如果需要bindMenu展示指向性菜单样式,在bindMenu的MenuOptions中将enableArrow属性设置为true,并根据需要决定是否设置arrowOffset属性值。
33
34## cl.arkui.2 应用可获焦的默认行为变更
35
36**访问级别**
37
38公开接口
39
40**变更原因**
41
42优化默认走焦行为。
43
44**变更影响**
45
46该变更为非兼容性变更。
47
48变更前:有获焦能力但默认不可获焦的组件,需要通过配置属性`.focusable(true)`使得自身可获焦,且走焦时没有默认焦点框,需要配置焦点态样式。
49
50变更后:注册了onClick或者单指单击手势的组件默认可获焦,走焦时无需配置焦点态样式也能显示默认焦点框。
51
52**API Level**
53
54该特性变更起始支持版本为 API 12。
55
56**变更发生版本**
57
58从OpenHarmony SDK 5.0.0.23开始。
59
60**适配指导**
61
62可点击组件不希望参与走焦,需要显示配置`.focusable(false)`;
63
64## cl.arkui.3 Dialog组件弹窗圆角、背景色、背景模糊、宽高限制、响应式/自适应、阴影样式等默认样式变更
65
66**访问级别**
67
68公开接口
69
70**变更原因**
71
72对弹窗视觉风格进行优化,包括圆角、背景色、材质、阴影;对弹窗响应式布局进行优化,在多设备上获得更好的用户体验。
73
74**变更影响**
75
76该变更为非兼容性变更,只影响弹窗的默认样式,自定义样式后以设置为准,自定义设置非法值时,效果等同默认场景。
77
78- 变更前
79  1. 弹窗圆角默认四个角均为24vp
80  2. 弹窗浅色模式默认背景色为0xd9fffff
81  3. 大部分弹窗默认均为背景色为透明(Color.Transparent)和 背景模糊(COMPONENT_ULTRA_THICK)叠加,customDialog和PromptAction中showDialog和openCustomDialog还是使用的默认背景色。
82  4. 弹窗默认宽度为栅格系统控制,最大宽度400vp,当设备为2in1时,弹窗固定大小为400vp不可改变,无法自定义设置宽度。
83  5. 弹窗默认最大高度为(屏幕高度 - 安全区域)* 0.8, 当设备为2in1时,高度最大为全屏 * 0.67 * 0.9。
84  6. 弹窗响应式/自适应场景下,居中样式为避让导航条后的居中;默认场景下弹窗对齐方式是DialogAlignment.Bottom样式,其余设备均为居中样式。
85  7. 所有设备都没有默认的阴影样式。
86
87  <br/>
88- 变更后
89  1. 弹窗圆角默认四个角均为32vp
90  2. 弹窗浅色模式默认背景色为0xfffff
91  3. 所有弹窗默认均为背景色为透明(Color.Transparent)和 背景模糊(COMPONENT_ULTRA_THICK)叠加
92  4. 弹窗默认宽度为所在窗口宽度 - 左右margin,设备上margin为16;当设备为2in1时,左右margin为40。默认最大宽度为400vp,可以随所在窗口大小变化。当自定义设置width接口值时,以自定义设置为准, 弹窗参考宽度为所在窗口的宽度,在此基础上调小或调大;自定义设置非法值时,效果等同默认场景。
93  5. 弹窗默认最小高度为70vp,默认最大高度均为(窗口高度 - 安全区域)* 0.9,无设备差异。当自定义设置Height接口值时,以自定义设置为准,弹窗参考高度为(窗口高度 - 安全区域),在此基础上调小或调大;自定义设置非法值时,效果等同默认场景。
94  6. 弹窗响应式/自适应场景下,居中样式为全屏居中,所有设备都默认弹窗居中。
95  7. 当设备为2in1时,默认场景下获焦阴影值为ShadowStyle.OUTER_FLOATING_MD,失焦为ShadowStyle.OUTER_FLOATING_SM;其余设备没有默认阴影样式。
96
97  如下图所示为变更前后效果对比:
98
99| 变更前 | 变更后 |
100|---------|---------|
101| ![](figures/Dialog_Default_Radius_And_Margin_Before.png)  |  ![](figures/Dialog_Default_Radius_And_Margin_After.png)  |
102| ![](figures/Dialog_Width_Before.png) |  ![](figures/Dialog_Width_After.png) |
103| ![](figures/Dialog_Default_Alignment_Before.png)  | ![](figures/Dialog_Default_Alignment_After.png) |
104| ![](figures/Dialog_Default_Shadow_Before.png)  | ![](figures/Dialog_Default_Shadow_After.png)  |
105
106**API Level**
107
108在API 12进行版本隔离
109
110**变更发生版本**
111
112从OpenHarmony SDK 5.0.0.23 版本开始。
113
114**变更的接口/组件**
115
116Dialog组件。
117
118**适配指导**
119
120默认效果变更:默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。
121
122## cl.arkui.4 拖拽预览图支持透明度效果及应用自定义
123
124**访问级别**
125
126公开接口
127
128**变更原因**
129
130依照UX规范
131
132**变更影响**
133
134该变更为非兼容性变更。
135
136API version 11及以前:可拖拽组件长按浮起预览图后没有透明度。
137
138API version 12及以后:可拖拽组件长按浮起预览图默认为95%透明度,应用可自定义透明度数值。
139
140**API Level**
141
14212
143
144**变更发生版本**
145
146从OpenHarmony SDK 5.0.0.23开始。
147
148**适配指导**
149
150默认样式变更调整,无需适配。
151
152## cl.arkui.5 @Observed/@Track/@ObservedV2新增校验变更
153**访问级别**
154
155公开接口
156
157**变更原因**
158
159深度观察的装饰器存在新旧两个接口,增加编译校验,防止开发者混用,导致运行时功能异常。
160
161**变更影响**
162
163变更前:不校验报错。
164
165变更后:
166如果开发者存在以下场景,不按规范使用,编译会报错。
167
168- 在@ObservedV2修饰的class内使用@Track。
169
170> **说明:**
171>
172> 因为新的@ObservedV2采用了和@Observed不同的实现逻辑,因此不能在@ObservedV2修饰的class内使用@Track。@Track可以和@Observed一起使用,@Trace可以和@ObservedV2一起使用。
173
174- 一个class同时被@Observed和@ObservedV2装饰。
175
176> **说明:**
177>
178> 将Observed和@ObservedV2混合使用,会出现未定义行为,表现为冗余刷新、失去深度观测能力、失去自身属性观测能力、失去属性级更新能力等。因此不能将Observed和@ObservedV2混合使用。
179
180- 装饰子类和父类的@Observed和@ObservedV2不一致。
181
182错误示例如下:
183
184```ts
185// @Track不能使用在@ObservedV2修饰的class内
186@ObservedV2
187class TestObserved {
188  @Track value: string = "hello"
189}
190// 一个class不能同时被@Observed和@ObservedV2装饰
191@Observed
192@ObservedV2
193class TestObserved1 {
194  value: string = "hello"
195}
196// 装饰子类和父类的@Observed和@ObservedV2需要保持一致
197@Observed
198class TestObserved3 {
199  @Track value: string = "hello"
200}
201@ObservedV2
202class TestObserved4 extends TestObserved3 {
203  @Trace value: string = "hello"
204}
205
206@ObservedV2
207class TestObserved5 {
208  @Trace value: string = "hello"
209}
210@Observed
211class TestObserved6 extends TestObserved5 {
212  @Track value: string = "hello"
213}
214```
215
216**起始API Level**
217
218起始支持版本为 API 12。
219
220**变更发生版本**
221
222从OpenHarmony SDK 5.0.0.23开始。
223
224**适配指导**
225
226开发者需要根据错误提示信息,进行适配整改。
227
228## cl.arkui.6 TextInput、TextArea、Search、RichEditor空间文本菜单样式变更
229
230**访问级别**
231
232公开接口
233
234**变更原因**
235
236规格变更
237
238**变更影响**
239
240该变更为兼容性变更。
241API Version 11 以及之前的版本:文本选择菜单,包含分享、搜索、翻译按钮,三个按钮都是灰色,并且有拓展菜单。
242
243API Version 12 变更后:文本选择菜单,不包含分享、搜索、翻译按钮,不出现拓展菜单。
244
245**起始 API Level**
246
247文本菜单是系统能力,无对外接口。
248
249**变更发生版本**
250
251从OpenHarmony SDK 5.0.0.23 版本开始。
252
253**变更的接口/组件**
254
255TextInput、TextArea、Search、RichEditor。
256
257**适配指导**
258
259默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。
260
261## cl.arkui.7 ImageSpan、ContainerSpan单独使用在DevEco Studio中报错变更
262
263**访问级别**
264
265公开接口
266
267**变更原因**
268
269规格变更
270
271**变更影响**
272
273该变更为非兼容性变更。
274变更前:Text子组件ImageSpan、ContainerSpan放在其他组件下使用,编译无报错。
275变更后:DevEco Studio中单独使用ImageSpan、ContainerSpan组件,而不是作为Text的子组件被使用,编译报错。
276
277**起始 API Level**
278
27912
280
281**变更发生版本**
282
283从OpenHarmony SDK 5.0.0.23 版本开始。
284
285**变更的接口/组件**
286
287ImageSpan、ContainerSpan。
288
289**适配指导**
290
291默认行为变更,开发者按照报错提示修改。
292
293## cl.arkui.8 Popup组件宽度设置100%场景下避让位置变更
294
295**访问级别**
296
297公开接口
298
299**变更原因**
300
301UX样式变更
302
303**变更影响**
304
305该变更为非兼容性变更。
306
307变更前,Popup宽度大于等于100% - 6vp时,Popup会进行默认避让,且距离窗口左侧有6vp边距。
308
309变更后,Popup宽度大于等于100% - 6vp时,Popup不会进行默认避让,且距离窗口左侧没有6vp边距。
310
311| 变更前 | 变更后 |
312|---------|---------|
313| ![变更前](figures/popup_avoid_old.jpg)  |  ![变更后](figures/popup_avoid_new.jpg)  |
314
315**起始API Level**
316
3177
318
319**变更发生版本**
320
321从OpenHarmony SDK 5.0.0.23 版本开始。
322
323**变更的接口/组件**
324
325Popup组件。
326
327**适配指导**
328
329默认效果变更,应注意变更后的默认效果是否符合开发者预期,如不符合可以使用offset属性自行调整Popup位置,请查阅[Popup控制](../../../application-dev/reference/apis-arkui/arkui-ts/ts-universal-attributes-popup.md)文档。
330
331## cl.arkui.9 拖拽预览图支持统一圆角及应用自定义
332
333**访问级别**
334
335公开接口
336
337**变更原因**
338
339依照UX规范
340
341**变更影响**
342
343该变更为非兼容性变更。
344
345API version 11及以前:非文本类组件长按浮起预览图显示应用自定义的圆角效果。
346
347API version 12及以后:非文本类组件长按浮起预览图通过检查DragPreviewOptions.mode来判断是否启用非文本类组件统一圆角效果,默认值12vp。当应用自身设置的圆角值大于默认值时,则显示应用自定义圆角效果。
348
349**API Level**
350
35112
352
353**变更发生版本**
354
355从OpenHarmony SDK 5.0.0.23开始。
356
357**适配指导**
358
359默认样式变更调整,无需适配。
360
361## cl.arkui.10 拖拽支持预览图背景模糊效果
362
363**访问级别**
364
365公开接口
366
367**变更原因**
368
369依照UX规范
370
371**变更影响**
372
373该变更为非兼容性变更。
374
375API version 11及以前:非文本类组件长按浮起预览图,预览图无背景模糊效果。
376
377API version 12及以后:非文本类组件长按浮起预览图,预览图有背景模糊效果。
378
379**API Level**
380
38112
382
383**变更发生版本**
384
385从OpenHarmony SDK 5.0.0.23开始。
386
387**适配指导**
388
389默认样式变更调整,无需适配。
390
391## cl.arkui.11 DatePickerDialog标题按钮大小及布局变更
392
393**访问级别**
394
395公开接口
396
397**变更原因**
398
399UX规格增强
400
401**变更影响**
402
403该变更为非兼容性变更。
404
405变更前:DatePickerDialog标题按钮大小与文本大小一致,底部操作区距离弹窗边缘24vp。
406
407变更后:DatePickerDialog标题按钮高度为32vp,距离弹窗左右边界为16vp,底部操作区与离弹窗边缘无间距。
408
409如下图所示为变更前后效果对比:
410
411| 变更前 | 变更后 |
412|---------|---------|
413| ![](figures/DatePickerDialogTitle_Before.jpg) | ![](figures/DatePickerDialogTitle_After.jpg) |
414
415**起始API Level**
416
41712
418
419**变更发生版本**
420
421从OpenHarmony SDK 5.0.0.23开始。
422
423**适配指导**
424
425默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。
426
427## cl.arkui.12  bindSheet组件修改标题与关闭按钮之间的间距
428
429**访问级别**
430
431公开接口
432
433**变更原因**
434
435为满足应用述求和新的UX规格,标题与关闭按钮的间距调整为8vp。
436
437**变更影响**
438
439该变更为非兼容性变更。
440
441API version 12之前,标题与关闭按钮之间的距离为32vp。
442
443API version 12及以后,标题与关闭按钮之间的距离为8vp。
444
445变更示例图:
446
447![](figures/SheetTitleSpace_compared.png)
448
449**起始API Level**
450
45111
452
453**变更发生版本**
454
455从OpenHarmony SDK 5.0.0.23开始。
456
457**变更的接口/组件**
458
459bindSheet组件
460
461**适配指导**
462
463默认行为变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则自定义修改效果控制变量以达到预期。
464
465## c1.arkui.13 bindSheet半模态面板的backgroundColor属性异常值处理逻辑变更
466
467**访问级别**
468
469公开接口
470
471**变更原因**
472
473bindSheet半模态面板的backgroundColor属性设置从正常值更新为异常值时,使用默认值。
474
475**变更影响**
476
477该变更为非兼容性变更。
478
479变更前,当开发者对bindSheet半模态面板的backgroundColor属性设置从正常值更新为异常值时,采用不操作处理。
480
481变更后,当开发者对bindSheet半模态面板的backgroundColor属性设置从正常值更新为异常值时,采用默认颜色处理。
482
483**起始API Level**
484
48511
486
487**变更发生版本**
488
489从OpenHarmony SDK 5.0.0.23 版本开始。
490
491**变更的接口/组件**
492
493bindSheet半模态面板。
494
495**适配指导**
496
497异常值处理逻辑变更,不涉及适配。
498
499默认行为变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则自定义修改效果控制变量以达到预期。
500
501## cl.arkui.14 Menu 组件边距 margin 变更
502
503**访问级别**
504
505公开接口
506
507**变更原因**
508
509菜单弹出 UX 默认行为改变
510
511**变更影响**
512
513API12变更之前:菜单带有边距 margin,左右方向为 12vp,上下方向为 24vp。
514
515API12变更之后:如果配置菜单在应用窗口内弹出,左右方向的 margin 为 16vp,上下侧默认规避状态栏与导航条,不额外增加避让距离;如果配置菜单在应用窗口外弹出,左右方向的 margin 为 8vp,上下侧默认规避状态栏与 Dock 区域,不额外增加避让距离。
516
517**起始API Level**
518
5199
520
521**变更发生版本**
522
523从OpenHarmony SDK 5.0.0.23版本开始。
524
525**变更的接口/组件**
526
527Menu 组件
528
529**适配指导**
530
531默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。
532
533## cl.arkui.15  TabContent组件底部页签水平方向排列情景默认字体大小变更
534
535**访问级别**
536
537公开接口
538
539**变更原因**
540
541当前TabContent组件底部页签水平方向排列情景时默认字体大小为10vp,字体偏小,视觉效果较差,变更为12vp,以提升视觉效果。
542
543**变更影响**
544
545该变更为非兼容性变更。
546
547API version 12之前,TabContent组件底部页签水平方向排布情景默认字体大小为10vp。
548
549![TabContent_Before](figures/TabContent_Before.png)
550
551API version 12及以后,TabContent组件底部页签水平方向排布情景默认字体大小为12vp。
552
553![TabContent_After](figures/TabContent_After.png)
554
555**起始API Level**
556
55710
558
559**变更发生版本**
560
561从OpenHarmony SDK 5.0.0.23开始。
562
563**变更的接口/组件**
564
565TabContent组件
566
567**适配指导**
568
569默认行为变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合可参照[TabContent组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-tabcontent.md)说明文档设置相关属性以达到预期。
570
571## cl.arkui.16 backgroundImage异常参数处理规格变更
572
573**访问级别**
574
575公开接口
576
577**变更原因**
578
579接口异常值处理变更。
580
581**变更影响**
582
583变更前:异常值时不处理。
584
585变更后:异常值时清除背景图,作默认值处理。
586
587**起始API Level**
588
589该特性版本为API 7,变更版本为API 12。
590
591**变更发生版本**
592
593从OpenHarmony SDK 5.0.0.23开始。
594
595**适配指导**
596
597异常值处理逻辑变更,不涉及适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则自定义修改效果控制变量以达到预期。
598
599## cl.arkui.17 backgroundImageSize异常参数处理规格变更
600
601**访问级别**
602
603公开接口
604
605**变更原因**
606
607接口异常值处理变更。
608
609**变更影响**
610
611变更前:异常值时当作宽高为0处理。
612
613变更后:异常值时当作默认值ImageSize.Auto处理。
614
615**起始API Level**
616
617该特性版本为API 7,变更版本为API 12。
618
619**变更发生版本**
620
621从OpenHarmony SDK 5.0.0.23开始。
622
623**适配指导**
624
625异常值处理逻辑变更,不涉及适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则自定义修改效果控制变量以达到预期。
626
627## cl.arkui.18 border中对部分接口新增参数类型
628
629**访问级别**
630
631公开接口
632
633**变更原因**
634
635扩展border成员属性类型,提供镜像能力。
636
637**变更影响**
638
639该变更为不兼容变更。
640
641变更前:borderWidth 参数类型为Length | EdgeWidths;
642
643​                borderColor 参数类型为ResourceColor | EdgeColors;
644
645​                borderRadius 参数类型为 Length | BorderRadiuses;
646
647​                borderOptions同理
648
649变更后:borderWidth 参数类型为Length | EdgeWidths | LocalizedEdgeWidths;
650
651​                borderColor 参数类型为ResourceColor | EdgeColors | LocalizedEdgeColors;
652
653​                borderRadius 参数类型为Length | BorderRadiuses | LocalizedBorderRadiuses;
654
655​                borderOptions同理
656
657**起始API Level**
658
65912
660
661**变更发生版本**
662
663从OpenHarmony SDK 5.0.0.23开始。
664
665**变更的接口/组件**
666
667新增 borderWidth参数LocalizedEdgeWidths,borderColor参数LocalizedEdgeColors,borderRadius参数LocalizedBorderRadiuses以及borderOptions中width、color、radius参数的类型扩充。
668
669**适配指导**
670
671开发者需要根据错误提示信息,进行适配整改。
672
673针对以下场景,会存在类型不兼容报错。
674
675```ts
676const item: BorderOptions = { width: "10px",color: 0x000000,radius: 10 }
677
678const value1 : Length | EdgeWidths = item.width
679
680const value2 : ResourceColor | EdgeColors = item.color
681
682const value3 : Length | BorderRadiuses = item.radius
683```
684
685需要开发者手动修改代码。
686
687```ts
688const item: BorderOptions = { width: "10px",color: 0x000000,radius: 10 }
689
690const value1 : Length | EdgeWidths | LocalizedEdgeWidths | undefined = item.width
691
692const value2 : ResourceColor | EdgeColors | LocalizedEdgeColors | undefined = item.color
693
694const value3 : Length | BorderRadiuses | LocalizedBorderRadiuses | undefined = item.radius
695```
696
697