1## cl.arkui.1 Menu组件箭头离宿主节点默认安全边距变更 2 3**访问级别** 4 5公开接口 6 7**变更原因** 8 9带箭头菜单离宿主节点过远,变更后效果更佳。 10 11**变更影响** 12 13| 变更前箭头离宿主节点16vp | 变更后箭头离宿主节点8vp | 14|---------|---------| 15|  |  | 16 17**起始API Level** 18 19API10 20 21**变更发生版本** 22 23从OpenHarmony SDK 5.0.0.35 版本开始。 24 25**变更的接口/组件** 26 27Menu组件。 28 29**适配指导** 30 31带箭头菜单离宿主节点的默认安全距离变小,若需要更大的间距,可设置菜单的offset进行调整。 32 33## cl.arkui.2 MenuItemGroup嵌套MenuItem且MenuItem设置margin top或者bottom时,布局效果变更 34 35**访问级别** 36 37公开接口 38 39**变更原因** 40 41MenuItemGroup高度没有加上MenuItem的margin高度,布局错乱,变更后布局正常。 42 43**变更影响** 44 45 46示例代码: 47```ts 48@Entry 49@Component 50struct Index { 51 build() { 52 Row() { 53 Button("菜单1").bindMenu(this.TestMarginTop()) 54 } 55 } 56 57 @Builder 58 TestMarginTop() { 59 Menu() { 60 MenuItemGroup() { 61 MenuItem({content:"第一个"}).margin({top:20, bottom:20}).borderWidth(2).borderColor(Color.Black) 62 MenuItem({content:"第二个"}).margin({top:20}).borderWidth(2).borderColor(Color.Black) 63 MenuItem({content:"第三个"}).margin({bottom:20}).borderWidth(2).borderColor(Color.Black) 64 MenuItem({content:"第四个"}).borderWidth(2).borderColor(Color.Black) 65 } 66 } 67 } 68} 69``` 70 71 72| 变更前布局错乱 | 变更后布局正常 | 73|---------|---------| 74|  |  | 75 76**起始API Level** 77 78API7 79 80**变更发生版本** 81 82从OpenHarmony SDK 5.0.0.35 版本开始。 83 84**变更的接口/组件** 85 86Menu组件。 87 88**适配指导** 89 90菜单布局效果变更,应用无需适配。 91 92## cl.arkui.3 Menu中MenuItem全部设置margin后,左右边距布局效果变更 93 94**访问级别** 95 96公开接口 97 98**变更原因** 99 100Menu中MenuItem全部设置margin后,左右边距不对称,变更后左右对称。 101 102**变更影响** 103 104示例代码: 105```ts 106@Entry 107@Component 108struct Index { 109 build() { 110 Column() { 111 Text('click for Menu') 112 .fontSize(20) 113 .margin({ top: 20 }) 114 .bindMenu(this.TestMenuItemMarginLeftAndRight) 115 } 116 .height('100%') 117 .width('100%') 118 } 119 120 @Builder 121 TestMenuItemMarginLeftAndRight() { 122 Menu() { 123 MenuItem({content:"这是menuitem1"}).margin(10).borderWidth(1) 124 } 125 .borderWidth(2) 126 .borderColor(Color.Red) 127 .width(200) 128 } 129} 130``` 131 132 133| 变更前边距不对称 | 变更后左右对称 | 134|---------|---------| 135|  |  | 136 137**起始API Level** 138 139API7 140 141**变更发生版本** 142 143从OpenHarmony SDK 5.0.0.35 版本开始。 144 145**变更的接口/组件** 146 147Menu组件。 148 149**适配指导** 150 151菜单布局效果变更,应用无需适配。 152 153## cl.arkui.4 菜单避让手机挖孔变更 154 155**访问级别** 156 157公开接口 158 159**变更原因** 160 161开发者在应用侧的module.json5中配置开启避让手机挖孔时,菜单未避让挖孔。 162 163``` json 164{ 165 "module": { 166 "metadata": [ 167 { 168 "name" : "avoid_cutout", 169 "value": "true", 170 } 171 ] 172 } 173} 174``` 175 176**变更影响** 177 178该变更为不兼容性变更。 179 180变更前:竖屏时菜单默认避让挖孔;横屏时,应用配置开启避让手机挖孔,菜单不会避让挖孔。 181 182变更后:竖屏时菜单默认避让挖孔;横屏时,应用配置开启避让手机挖孔,菜单会避让挖孔。 183 184 185 186**起始API Level** 187 188Menu组件的BindMenu接口 API 7 189 190Menu组件的BindContextMenu接口 API 8 191 192**变更发生版本** 193 194从OpenHarmony SDK 5.0.0.35开始。 195 196**变更的接口/组件** 197 198Menu组件的BindMenu接口 199 200Menu组件的BindContextMenu接口 201 202**适配指导** 203 204默认行为变更,无需适配。 205 206## cl.arkui.5 Repeat设置totalCount属性行为变更 207 208**访问级别** 209 210公开接口 211 212**变更原因** 213 214totoalCount表示UI显示的数据个数。当0 < totalCount < arr.length时,界面中只渲染“totalCount”个数据。 215 216**变更影响** 217 218该变更为不兼容性变更。 219 220变更前:Repeat设置totalCount属性时,如果totalCount小于数据长度,显示的数据个数为数据的长度。 221 222将arr.length设置为10,totalCount设置为5。显示效果如图所示: 223 224 225 226变更后:Repeat设置totalCount属性时,如果totalCount小于数据长度,显示的数据个数为totalCount值。 227 228将arr.length设置为10,totalCount设置为5。显示效果如图所示: 229 230 231 232**起始API Level** 233 23412 235 236**变更发生版本** 237 238从OpenHarmony SDK 5.0.0.35开始。 239 240**变更的接口/组件** 241 242Repeat组件。 243 244**适配指导** 245 246如果开发者想要显示的数据个数为数据长度时,需要将totalCount值设置为数组长度。示例代码如下: 247 248```ts 249@Entry 250@ComponentV2 251struct TestPage { 252 @Local simpleList: Array<string> = []; 253 private totalCount: number = 50; 254 255 aboutToAppear(): void { 256 for (let i = 0; i < 50; i++) { 257 this.simpleList.push('Hello ' + i); 258 } 259 } 260 261 build() { 262 Column({ space: 10 }) { 263 List() { 264 Repeat<string>(this.simpleList) 265 .each((obj: RepeatItem<string>) => { 266 ListItem() { 267 Text('[each] ' + obj.item) 268 .fontSize(30) 269 .margin({ top: 10 }) 270 } 271 }) 272 .key((item: string, index: number) => item) 273 .virtualScroll({ totalCount: this.totalCount }) 274 .templateId((item: string, index: number) => "default") 275 .template('default', (ri) => { 276 Text('[template] ' + ri.item) 277 .fontSize(30) 278 .margin({ top: 10 }) 279 }, { cachedCount: 3 }) 280 } 281 .cachedCount(1) 282 .border({ width: 1 }) 283 .height('50%') 284 } 285 .height('100%') 286 .justifyContent(FlexAlign.Center) 287 } 288} 289``` 290 291## cl.arkui.6 TimePickerDialog标题高度变更 292 293**访问级别** 294 295公开接口 296 297**变更原因** 298 299修正视觉效果以获得更好的用户体验。 300 301**变更影响** 302 303该变更为不兼容变更。 304 305变更前:标题高度为46vp。 306 307变更后:标题高度为56vp。 308 309| 变更前 | 变更后 | 310|---------|---------| 311|  |  | 312 313**起始API Level** 314 3158 316 317**变更发生版本** 318 319从OpenHarmony SDK 5.0.0.35开始。 320 321**变更的接口/组件** 322 323TimePickerDialog组件。 324 325**适配指导** 326 327默认行为变更,无需适配。 328 329## cl.arkui.7 SubMenu避让底部导航条距离变更 330 331**访问级别** 332 333公开接口 334 335**变更原因** 336 337Menu避让能贴近底部导航条,而SubMenu避让位置无法贴近底部导航条,视觉效果不好 338 339**变更影响** 340 341该变更为不兼容性变更。 342 343| 变更前:SubMenu避让底部导航条之后避让了一个固定高度的padding | 变更后:SubMenu仅避让底部导航条,不额外添加固定高度的padding | 344|---------|---------| 345|  |  346 347**起始API Level** 348 3497 350 351**变更发生版本** 352 353从OpenHarmony SDK 5.0.0.35开始。 354 355**变更的接口/组件** 356 357Menu组件。 358 359**适配指导** 360 361默认行为变更,无需适配。 362 363## cl.arkui.8 menu、toast修改阴影参数 364**访问级别** 365 366公开接口 367 368**变更原因** 369 370当前menu、toast组件阴影不明显,背景颜色和组件颜色接近时,区分度不高。 371 372**变更影响** 373 374该变更为不兼容变更。 375 376| 变更前阴影 | 变更后阴影| 377|---------|---------| 378|  |  | 379|  |  | 380 381**起始API Level** 382 383Menu组件的BindMenu接口 API 7 384 385Menu组件的BindContextMenu接口 API 8 386 387Toast组件的ShowToast接口 API 9 388 389**变更发生版本** 390 391从OpenHarmony SDK 5.0.0.35开始。 392 393**变更的接口/组件** 394 395Menu组件的BindMenu接口 396 397Menu组件的BindContextMenu接口 398 399Toast组件ShowToast接口 400 401**适配指导** 402 403默认效果变更,无需适配。 404 405## cl.arkui.9 RichEditor设置预设样式的接口传入默认值时,文本样式效果变更 406 407**访问级别** 408 409公开接口 410 411**变更原因** 412 413RichEditor设置用户预设样式的接口setTypingStyle,传入默认值undefined/null后,开发者自定义预置样式依然存在,未恢复成不设置时效果。 414 415不设置时,当用户输入文本,输入后的文本样式跟随前一个文本的文本样式。 416 417**变更影响** 418 419该变更为不兼容变更 420 421变更前: 422 423当setTypingStyle设置为默认值时,调用接口setTypingStyle不生效。 424 425其效果为在任何文本后面持续输入的文本会一直保持之前开发者设置的预置样式,不会跟随前一个文本样式。 426 427变更后: 428 429当setTypingStyle设置为默认值时,会恢复为不设置时效果。 430 431其效果为在任何文本后面持续输入的文本时,会根据前一个文本样式去更新当前输入文本样式。 432 433**起始API Level** 434 43511 436 437**变更发生版本** 438 439从OpenHarmony SDK 5.0.0.35 版本开始。 440 441**变更的接口/组件** 442 443setTypingStyle 444 445**适配指导** 446 447开发者需要清除TypingStyle使用组件默认样式时,请参照如下代码。 448```ts 449@Entry 450@Component 451struct Index { 452 controller: RichEditorController = new RichEditorController() 453 options: RichEditorOptions = { controller: this.controller } 454 build() { 455 Column() { 456 RichEditor(this.options) 457 .borderWidth(1) 458 .borderColor(Color.Green) 459 .width("100%") 460 .height("50%") 461 Button('ResetTypingStyle') 462 .fontSize(10) 463 .onClick(() => { 464 // 清除TypingStyle 465 this.controller.setTypingStyle(undefined) 466 // this.controller.setTypingStyle(null) 467 }) 468 Button('SetTypingStyle') 469 .fontSize(10) 470 .onClick(() => { 471 // 设置TypingStyle 472 this.controller.setTypingStyle({fontColor:"#ff0000"}) 473 }) 474 } 475 } 476} 477``` 478 479## cl.arkui.10 RichEditor占位文本接口中文本样式属性传入异常值/默认值时,占位文本样式的效果变更 480 481**访问级别** 482 483公开接口 484 485**变更原因** 486 4871.RichEditor设置占位文本的接口placeholder,其占位文本样式属性PlaceHolderStyle为异常值"{}"时,组件未将占位文本样式属性设置为默认效果。 488 4892.当占位文本样式属性中各个属性为默认值undefined时,对应默认效果未生效。 490 491占位文本样式属性: 492 493- 文本尺寸(默认值 16vp) 494 495- 文本粗细(默认值 400) 496 497- 文本字体(默认值 当前系统字体/注册自定义字体) 498 499- 文本样式(默认值 FontStyle.Normal) 500 501- 文本颜色(默认值:跟随系统主题,一般为黑色) 502 503**变更影响** 504 505该变更为不兼容变更 506 507变更前:占位文本样式属性为异常值或其内部其他属性设为默认值时,调用接口placeholder未生效。 508 509变更后:占位文本样式属性为异常值或其内部其他属性设为默认值时,按组件默认占位文本样式/对应属性默认样式生效。 510 511**起始API Level** 512 51312 514 515**变更发生版本** 516 517从OpenHarmony SDK 5.0.0.35 版本开始。 518 519**变更的接口/组件** 520 521PlaceHolderStyle 522 523**适配指导** 524 525开发者需要排查调用设置占位文本placeholder中PlaceHolderStyle为异常值或其各个属性为异常值时,是否按照默认效果生效。 526 527以style为"{}"和fontcolor为默认值为例,见如下代码,请开发者自行排查。 528```ts 529@Entry 530@Component 531struct Index { 532 controller: RichEditorController = new RichEditorController() 533 options: RichEditorOptions = { controller: this.controller } 534 @State style: PlaceholderStyle = { fontColor: "#ff0000" }; 535 536 build() { 537 Column() { 538 RichEditor(this.options) 539 .borderWidth(1) 540 .borderColor(Color.Green) 541 .width("100%") 542 .height("50%") 543 .placeholder("hello world", this.style) 544 Button('change style to {}') 545 .fontSize(10) 546 .onClick(() => { 547 this.style = {}; 548 }) 549 Button('change style.fontColor to undefined') 550 .fontSize(10) 551 .onClick(() => { 552 this.style = { fontColor: undefined }; 553 }) 554 Button('change style.fontColor to normal value') 555 .fontSize(10) 556 .onClick(() => { 557 this.style = { fontColor: "#ff0000" }; 558 }) 559 } 560 } 561} 562``` 563 564## cl.arkui.11 MenuItem组件禁用状态下字体颜色变更 565 566**访问级别** 567 568公开接口 569 570**变更原因** 571 572MenuItem设置enable为false时, 组件将处于禁用状态,此时字体颜色为默认的灰色,开发者设置的字体颜色将不会生效。 573 574**变更影响** 575 576该变更为不兼容变更 577 578变更前:MenuItem设置enable为false时,无论开发者是否设置字体颜色,组件禁用状态下的字体颜色均为默认字体颜色 * 不透明度40%。 579 580变更后:MenuItem设置enable为false时,若开发者未设置字体颜色,则组件禁用状态下的字体颜色为默认字体颜色 * 不透明度40%;若开发者设置了字体颜色,则组件禁用状态下的字体颜色为自定义字体颜色 * 不透明度40%; 581 582 583 584**起始API Level** 585 5869 587 588**变更发生版本** 589 590从OpenHarmony SDK 5.0.0.35开始。 591 592**变更的接口/组件** 593 594MenuItem组件。 595 596**适配指导** 597 598默认行为变更,无需适配。 599 600## cl.arkui.12 RichEditor收起键盘后,选中区状态变更 601 602**访问级别** 603 604公开接口 605 606**变更原因** 607 608UX规格变更 609 610**变更影响** 611 612该变更为不兼容性变更。 613 614变更前:RichEditor非用户手动点击收起键盘按钮收起键盘时,触发组件失焦,关闭菜单,复位选中区。 615 616 617 618变更后:RichEditor非用户手动点击收起键盘按钮收起键盘时,仅小窗模式下触发组件失焦,其他场景不触发组件失焦,不关闭菜单,不复位选中区。 619 620 621 622**起始API Level** 623 62410 625 626**变更发生版本** 627 628从OpenHarmony SDK 5.0.0.35开始。 629 630**变更的接口/组件** 631 632RichEditor组件。 633 634**适配指导** 635 636非用户手动点击收起键盘按钮收起键盘时收起键盘时焦点状态变更,应用无需适配。 637 638## cl.arkui.13 dragInteraction接口增加系统接口校验 639 640**访问级别** 641 642系统接口。 643 644**变更原因** 645 646拖拽的监听等接口没有权限管控,恶意三方应用可以监听用户拖拽行为进行画像,因此将dragInteraction.on('drag')和dragInteraction.off('drag')接口函数添加接口权限校验。 647 648**变更影响** 649 650该变更为不兼容性变更,非系统应用不能调用dragInteraction.on('drag')和dragInteraction.off('drag')接口。 651 652**起始API Level** 653 65412 655 656**变更发生的版本** 657 658从OpenHarmony SDK 5.0.0.33开始。 659 660**变更的接口** 661 662on(type: 'drag', callback: Callback\<DragState>): void; 663off(type: 'drag', callback?: Callback\<DragState>): void; 664 665**适配指导** 666 667默认行为变更,无需适配。 668 669## cl.arkui.14 Scroll、List、Grid、WaterFlow组件scrollBarColor接口变更 670 671**访问级别** 672 673公开接口 674 675**变更原因** 676 677统一Scroll、List、Grid、WaterFlow组件scrollBarColor接口在设置负数时的行为。 678 679**变更影响** 680 681该变更为不兼容变更。 682 683变更前,Scroll组件scrollBarColor接口设置负数时按默认值0x66182431处理,List、Grid、WaterFlow组件scrollBarColor接口设置负数时按黑色0xFF000000处理。 684 685变更后,Scroll、List、Grid、WaterFlow组件scrollBarColor接口设置负数时按无符号整数对应的ARGB颜色处理。 686 687**起始API Level** 688 6897 690 691**变更发生版本** 692 693从OpenHarmony SDK 5.0.0.35开始。 694 695**变更的接口/组件** 696 697Scroll、List、Grid、WaterFlow组件scrollBarColor接口 698 699**适配指导** 700 701默认行为变更,无需适配。 702 703## cl.arkui.15 自定义MenuItem的onChange触发逻辑变更 704 705**访问级别** 706 707公开接口 708 709**变更原因** 710 711基于CustomBuilder创建的MenuItem,无法触发onChange事件。变更后事件触发符合预期。 712 713**变更影响** 714 715该变更为不兼容性变更。 716 717变更前:基于CustomBuilder创建的MenuItem,无法触发onChange事件。 718 719变更后:基于CustomBuilder创建的MenuItem,正常触发onChange事件。 720 721**起始API Level** 722 7239 724 725**变更发生版本** 726 727从OpenHarmony SDK 5.0.0.35开始。 728 729**变更的接口/组件** 730 731MenuItem组件。 732 733**适配指导** 734 735默认行为变更,无需适配。注意,由于此前基于CustomBuilder创建的MenuItem,设置onChange不生效,变更后请按应用场景正确使用onChange。 736 737## cl.arkui.16 手机横屏及其他设备,上下文菜单placement变更 738 739**访问级别** 740 741公开接口 742 743**变更原因** 744 745手机横屏及其他设备场景,布局计算未按照用户设置的placement进行,导致显示异常。变更后布局效果符合预期。 746 747**变更影响** 748 749该变更为不兼容性变更。 750 751变更前:手机横屏及其他设备,布局计算基于默认的Placement.BOTTOM_RIGHT进行,导致上下文菜单大小、位置异常。 752 753变更后:手机横屏及其他设备,布局计算基于用户设置的placement进行,当用户未设置placement时,使用默认的Placement.BOTTOM_RIGHT进行,最终布局效果符合预期。 754 755| 变更前 | 变更后 | 756|---------|---------| 757|  |  | 758 759**起始API Level** 760 7618 762 763**变更发生版本** 764 765从OpenHarmony SDK 5.0.0.35开始。 766 767**变更的接口/组件** 768 769.bindContextMenu的placement属性。 770 771**适配指导** 772 773默认行为变更,无需适配。 774 775## cl.arkui.17 Toggle/Switch按压反馈样式变更 776 777**访问级别** 778 779公开接口 780 781**变更原因** 782 783UX规范变更 784 785**变更影响** 786 787该变更为兼容性变更。 788 789变更前:Toggle/Switch有按压反馈,点击时会有按压效果。 790 791变更后:去除Toggle/Switch按压反馈,点击时无按压效果。 792 793| 变更前 | 变更后 | 794|---------|---------| 795| | | 796 797**起始API Level** 798 7998 800 801**变更发生版本** 802 803从OpenHarmony SDK 5.0.0.35开始。 804 805**适配指导** 806 807按压显示效果变化,无需适配。 808 809## cl.arkui.18 Contextmenu组件hoverScale接口过渡动效默认行为变更 810**访问级别** 811 812公开接口 813 814**变更原因** 815 816UX规格变更。 817 818**变更影响** 819 820该变更为不兼容变更。 821 822变更前: 8231. 需长按800ms后,组件截图做600ms缩放动效,然后切换自定义预览图, 切换时使用弹簧动效。 8242. hoverScale与scale接口组合使用时,整个动效流程生效的缩放动效的参数为 hoverScale From -> scaleFrom -> scaleTo。 8253. hoverScale动效过程中不支持打断动效。 8264. hoverScale动效过程中,组件截图与预览图切换时,组件截图和预览图做相反的透明度动效。 827 828变更后: 8291. 需长按250ms后,组件截图做200ms缩放动效,然后切换自定义预览图, 切换时弹簧动效速度较之前版本变快。 8302. hoverScale与scale接口组合使用时,整个动效流程生效的缩放动效的参数为 hoverScaleFrom -> hoverScaleTo -> scaleTo。 8313. hoverScale动效过程中,在组件截图缩放动效的200ms可以点击空白处取消动效,并以弹簧动效返回原始状态。 8324. hoverScale动效过程中,组件截图切换预览图时,组件截图不做透明度变化动效,仅预览图做透明度动效。 833 834| 变更前 | 变更后 | 835|---------|---------| 836|  |  | 837 838**起始API Level** 839 84012 841 842**变更发生版本** 843 844从OpenHarmony SDK 5.0.0.35开始。 845 846**变更的接口/组件** 847 848contextmenu的hoverScale接口 849 850**适配指导** 851 852默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。 853 854## cl.arkui.19 删除systemapi的atomicService标签 855 856**访问级别** 857 858系统接口 859 860**变更原因** 861 862systemapi不支持在元服务中使用。 863 864**变更影响** 865 866该变更为不兼容变更。 867 868变更前:支持在元服务应用中使用,使用该接口IDE正确编译。 869 870变更后:不支持在元服务应用中使用,使用该接口会导致IDE编译报错。 871 872**起始API Level** 873 874API 12 875 876**变更发生版本** 877 878从OpenHarmony SDK 5.0.0.35开始。 879 880**变更的接口/组件** 881 882clearResourceCache、TransitionHierarchyStrategy、TransitionHierarchyStrategy枚举的NONE类型、 883TransitionHierarchyStrategy枚举的ADAPTIVE类型、GeometryTransitionOptions接口的hierarchyStrategy属性 884 885**适配指导** 886 887默认行为变更,无需适配。 888