1# ArkUI子系统Changelog 2 3## cl.arkui.1 Toggle组件Switch样式移除宽高比1.8倍限制 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11a)Toggle组件Switch样式原宽高比固定为1.8倍,导致开发者无法不受限制自定义宽高。现移除1.8倍限制,增强开发者自定义能力。 12 13**变更影响** 14 15该变更为非兼容性变更。 16 17API version 11及以前,Toggle组件Switch样式宽高比固定为1.8倍,开发者设置宽高比大于1.8倍时以高度为基准,小于1.8倍时以宽度为基准。 18 19例:宽度设置为200vp,高度设置为100vp,则宽度会被重置为180vp,高度保持100vp;宽度设置为180vp,高度设置为150vp,则高度会被重置为100vp,宽度保持180vp; 20 21API version 12及以后,Toggle组件Switch样式宽高比没有限制。 22 23**起始API Level** 24 25width,height通用属性的起始支持版本为API 7 26 27**变更发生版本** 28 29从OpenHarmony SDK 5.0.0.21 版本开始。 30 31**变更的接口/组件** 32 33Toggle组件 34 35**适配指导** 36 37取消组件宽高比例限制, 如果此前设置组件宽高比例大于1.8倍时需要以高度为基准修改业务代码,小于1.8倍时需要以宽度为基准修改业务代码,才能保持原有组件样式。 38 39其他适配请查阅[Toggle组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-toggle.md)文档进行适配。 40 41## cl.arkui.2 Radio组件单选项样式风格增强、支持显示自定义图标 42 43**访问级别** 44 45公开接口 46 47**变更原因** 48 49允许用户自定义单选项的选中状态: 50 511.可以选择不同的样式,如圆饼样式,对勾样式,自定义图标样式。 52 532.用户自定义图标时,设置选中状态时图标显示,非选中状态时图标不显示。 54 55**变更影响** 56 57该变更为非兼容性变更。 58 59- 变更前:默认选中状态DOT(圆圈样式)。 60- 变更后:默认选中状态TICK(对勾样式)。 61 62| DOT | TICK | 63|---------|---------| 64|  |  | 65 66**API Level** 67 6812 69 70**变更发生版本** 71 72从OpenHarmony SDK 5.0.0.21版本开始。 73 74**示例:** 75该示例实现了自定义选中状态 76``` 77@Entry 78@Component 79struct RadioExample { 80 @Builder 81 indicatorBuilder() { 82 Image($r("app.media.star")) 83 } 84 build() { 85 Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { 86 Column() { 87 Text('Radio1') 88 Radio({ value: 'Radio1', group: 'radioGroup', 89 indicatorType:RadioIndicatorType.TICK 90 }).checked(true) 91 .height(50) 92 .width(80) 93 .onChange((isChecked: boolean) => { 94 console.log('Radio1 status is ' + isChecked) 95 }) 96 } 97 Column() { 98 Text('Radio2') 99 Radio({ value: 'Radio2', group: 'radioGroup', 100 indicatorType:RadioIndicatorType.DOT 101 }).checked(false) 102 .height(50) 103 .width(80) 104 .onChange((isChecked: boolean) => { 105 console.log('Radio2 status is ' + isChecked) 106 }) 107 } 108 Column() { 109 Text('Radio3') 110 Radio({ value: 'Radio3', group: 'radioGroup', 111 indicatorType:RadioIndicatorType.CUSTOM, 112 indicatorBuilder:()=>{this.indicatorBuilder()} 113 }).checked(false) 114 .height(50) 115 .width(80) 116 .onChange((isChecked: boolean) => { 117 console.log('Radio3 status is ' + isChecked) 118 }) 119 } 120 }.padding({ top: 30 }) 121 } 122} 123``` 124 125**变更的接口/组件** 126 127Radio组件 128 129**适配指导** 130 131请查阅[Radio组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-radio.md)文档进行适配。 132 133## cl.arkui.3 文本组件的文本选择行为变更 134 135**访问级别** 136 137公开接口 138 139**变更原因** 140 141依照UX规范 142 143**变更影响** 144 145该变更为非兼容性变更。API version 11及以前: 146 147a)当前Text组件长按出现菜单时,旋转屏幕,此时依旧出现菜单。 148 149b)当前Text/TextInput/TextArea/Search/RichEditor组件长按出现菜单,进行复制行为,文本退出选中态。 150 151c)当前TextInput/TextArea/Search/RichEditor组件在手机和平板设备上通过代码选区,只出现选中态,无手柄。 152 153API version 12及以后: 154 155a)当前Text组件长按出现菜单时,旋转屏幕,隐藏菜单,保持选中态。 156 157b)当前TextInput/TextArea/Search/RichEditor组件长按出现菜单时,进行复制行为,隐藏菜单,保持选中态。 158 159c)当前TextInput/TextArea/Search/RichEditor组件在手机和平板设备上通过代码选区,出现选中态和手柄,用户可自定义出现菜单。 160 161| 变更前 | 变更后 | 162|---------|---------| 163|  |  | 164|  |  | 165|  |  | 166 167**API Level** 168 16912 170 171**变更发生版本** 172 173从OpenHarmony SDK 5.0.0.21 版本开始。 174 175**变更的接口/组件** 176 177Text/TextInput/TextArea/Search/RichEditor组件。 178 179**适配指导** 180 181默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响 182 183## c1.arkui.4 TextInput组件underline默认样式变更 184 185**访问级别** 186 187公开接口 188 189**变更原因** 190 191依照UX规范 192 193**变更影响** 194 195该变更为非兼容性变更。API version 11及以前,TextInput组件设置underline时,组件出现的时候无圆角,组件获焦失焦后有圆角,且圆角值不同。API version 12及以后,依照UX规范统一默认都设置无圆角。 196 197| 变更前 | 变更后 | 198|---------|---------| 199|  |  | 200|  |  | 201|  |  | 202 203**API Level** 204 20512 206 207**变更发生版本** 208 209从OpenHarmony SDK 5.0.0.21 版本开始。 210 211**变更的接口/组件** 212 213TextInput组件。 214 215**适配指导** 216 217默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期 218 219## cl.arkui.5 AlphabetIndexer组件的默认样式变更 220 221**访问级别** 222 223公开接口 224 225**变更原因** 226 227a)当前AlphabetIndexer组件的字母索引条默认字体大小为12vp,依照UX规范修改字母索引条默认字体大小到10vp。 228 229b)当前AlphabetIndexer组件的字母索引条默认字重为Normal,依照UX规范修改字母索引条默认字重到Medium。 230 231c)当前AlphabetIndexer组件的字母索引条选中项文字默认字体大小为12vp,依照UX规范修改字母索引条选中项文字默认字体大小到10vp。 232 233d)当前AlphabetIndexer组件的字母索引条选中项文字默认字重为Normal,依照UX规范修改字母索引条选中项文字默认字重到Medium。 234 235e)当前AlphabetIndexer组件的字母索引条索引项背板圆角默认为4vp,依照UX规范修改字母索引条索引项背板圆角默认为8vp。 236 237f)当前AlphabetIndexer组件的字母索引条背板圆角默认为0vp,依照UX规范修改字母索引条索引项背板圆角默认为12vp。 238 239g)当前AlphabetIndexer组件的字母索引条背板上下padding默认为2vp,依照UX规范修改字母索引条索引项背板上下padding默认为4vp。 240 241h)当前AlphabetIndexer组件的字母索引条pressed状态文字背板颜色默认为'#0c182431',依照UX规范修改字母索引条pressed状态文字背板颜色默认为'#19182431'。 242 243i)当前AlphabetIndexer组件的弹出窗口默认背板阴影尺寸为DefaultShadowM、依照UX规范变更默认背板阴影尺寸为DefaultShadowL。 244 245j)当前AlphabetIndexer组件的弹出窗口默认背板最大高度为336vp、依照UX规范变更弹出窗口默认背板最大高度为342vp。 246 247k)当前AlphabetIndexer组件的弹出窗口自适应折叠模式默认背板最大高度为224vp、依照UX规范变更弹出窗口自适应折叠模式默认背板最大高度为186vp。 248 249l)当前AlphabetIndexer组件的弹出窗口上下padding默认为0vp、依照UX规范变更弹出窗口上下padding默认为4vp。 250 251m)当前AlphabetIndexer组件的弹出窗口背板圆角默认为16vp,依照UX规范修改弹出窗口背板圆角默认为28vp。 252 253n)当前AlphabetIndexer组件的弹出窗口索引项默认尺寸为56vp、依照UX规范变更弹出窗口索引项默认尺寸为48vp。 254 255o)当前AlphabetIndexer组件的弹出窗口索引项间隔为0vp、依照UX规范变更弹出窗口索引项间隔为4vp。 256 257p)当前AlphabetIndexer组件的弹出窗口索引项背板圆角默认为0vp,依照UX规范修改弹出窗口索引项背板圆角默认为24vp。 258 259q)当前AlphabetIndexer组件的弹出窗口背板颜色默认为'#FFFFFFFF',依照UX规范修改弹出窗口背板颜色默认为'#66808080'。 260 261r)当前AlphabetIndexer组件的弹出窗口字母部分背板颜色默认为'#FFFFFFFF',依照UX规范修改弹出窗口字母部分背板颜色默认为'#0c182431'。 262 263s)当前AlphabetIndexer组件的弹出窗口非字母部分背板颜色默认为'#FFFFFFFF',依照UX规范修改弹出窗口非字母部分背板颜色默认为'#00000000'。 264 265t)当前AlphabetIndexer组件的弹出窗口非字母部分点击时背板颜色默认为0x1A000000,依照UX规范修改弹出窗口非字母部分背板颜色默认为'#0c182431'。 266 267u)当前AlphabetIndexer组件的弹出窗口背板模糊材质默认为NONE,依照UX规范修改弹出窗口背板模糊材质默认为COMPONENT_REGULAR。 268 269**变更影响** 270 271该变更为非兼容性变更。API version 11及以前,采用当前默认值。API version 12及以后,采用修改后默认值。 272 273**API Level** 274 27512 276 277**变更发生版本** 278 279从OpenHarmony SDK 5.0.0.21 版本开始。 280 281**变更的接口/组件** 282 283AlphabetIndexer组件 284 285**适配指导** 286 287请查阅[AlphabetIndexer组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-alphabet-indexer.md)文档进行适配。 288 289## cl.arkui.6 AlphabetIndexer组件允许用户自定义AlphabetIndexer的样式风格 290 291**访问级别** 292 293公开接口 294 295**变更原因** 296 297允许用户自定义AlphabetIndexer的样式风格: 298 2991、设置AlphabetIndexer索引项背板圆角、AlphabetIndexer背板圆角自适应变化 300 3012、设置AlphabetIndexer提示弹窗索引项背板圆角、AlphabetIndexer提示弹窗背板圆角自适应变化 302 3033、设置AlphabetIndexer提示弹窗首个索引项背板颜色 304 3054、设置AlphabetIndexer提示弹窗背板模糊风格 306 307**变更影响** 308 309该变更为非兼容性变更。 310 311API version 11及以前,不允许用户自定义AlphabetIndexer索引项背板圆角、提示弹窗索引项背板圆角、提示弹窗首个索引项背板颜色、提示弹窗背板模糊风格。 312 313 314 315API version 12及以后,允许用户自定义AlphabetIndexer索引项背板圆角、提示弹窗索引项背板圆角、提示弹窗首个索引项背板颜色、提示弹窗背板模糊风格。 316 317 318 319**API Level** 320 32112 322 323**变更发生版本** 324 325从OpenHarmony SDK 5.0.0.21 版本开始。 326 327**示例:** 328 329``` 330@Entry 331@Component 332struct AlphabetIndexerSample { 333 private arrayA: string[] = ['安'] 334 private arrayB: string[] = ['卜', '白', '包', '毕', '丙'] 335 private arrayC: string[] = ['曹', '成', '陈', '催'] 336 private arrayL: string[] = ['刘', '李', '楼', '梁', '雷', '吕', '柳', '卢'] 337 private value: string[] = ['#', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 338 'H', 'I', 'J', 'K', 'L', 'M', 'N', 339 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 340 'V', 'W', 'X', 'Y', 'Z'] 341 342 build() { 343 Stack({ alignContent: Alignment.Start }) { 344 Row() { 345 List({ space: 20, initialIndex: 0 }){} 346 .width('50%') 347 .height('100%') 348 349 AlphabetIndexer({ arrayValue: this.value, selected: 0 }) 350 .popupBackground(0xD2B48C) // 弹出框背景颜色 351 .popupBackgroundBlurStyle(BlurStyle.COMPONENT_ULTRA_THICK) // 设置AlphabetIndexer提示弹窗背板模糊风格 352 .popupTitleBackground(0x00FF00) // 设置AlphabetIndexer提示弹窗首个索引项背板颜色 353 .popupItemBorderRadius(20) // 设置AlphabetIndexer提示弹窗索引项背板圆角 354 .itemBorderRadius(5) // 设置AlphabetIndexer索引项背板圆角 355 .onSelect((index: number) => { 356 console.info(this.value[index] + ' Selected!') 357 }) 358 .onRequestPopupData((index: number) => { 359 if (this.value[index] == 'A') { 360 return this.arrayA // 当选中A时,弹出框里面的提示文本列表显示A对应的列表arrayA,选中B、C、L时也同样 361 } else if (this.value[index] == 'B') { 362 return this.arrayB 363 } else if (this.value[index] == 'C') { 364 return this.arrayC 365 } else if (this.value[index] == 'L') { 366 return this.arrayL 367 } else { 368 return [] // 选中其余子母项时,提示文本列表为空 369 } 370 }) 371 .onPopupSelect((index: number) => { 372 console.info('onPopupSelected:' + index) 373 }) 374 } 375 .width('100%') 376 .height('100%') 377 } 378 } 379} 380``` 381 382**变更的接口/组件** 383 384AlphabetIndexer组件 385 386**适配指导** 387 388请查阅[AlphabetIndexer组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-alphabet-indexer.md)文档进行适配。 389 390## cl.arkui.7 MenuItemGroup组件header、footer对齐方式变更 391 392**访问级别** 393 394公开接口 395 396**变更原因** 397 398优化MenuItemGroup组件header、footer的对齐方式,以提供更好的视觉效果。 399 400**变更影响** 401 402API12变更之前:header、footer与菜单文本左对齐。 403 404 405 406API12变更之后:header、footer与左侧图标左对齐。当header、footer较长时,变更后,菜单宽度可能自适应变窄。 407 408 409 410**起始API Level** 411 4129 413 414**变更发生版本** 415 416从OpenHarmony SDK 5.0.0.21 版本开始。 417 418**变更的接口/组件** 419 420MenuItemGroup组件。 421 422**适配指导** 423 424UX默认行为变更,无需适配。 425 426## cl.arkui.8 DatePickerDialog列宽比例、picker上下间距、内容与弹窗边距样式变更 427 428**访问级别** 429 430公开接口 431 432**变更原因** 433 434修正视觉效果以获得更好的用户体验。 435 436**变更影响** 437 438该变更为非兼容性变更。 439 440a) DatePickerDialog列宽比例变更 441 442变更前:年/月/日选择器列宽比例为1:1:1;展示时间时,日月/上下午/时/分 选择器列宽比例为12:7:7:7。 443 444变更后:年/月/日选择器列宽比例为3:2:2;展示时间时,日月/上下午/时/分 选择器列宽比例为4:3:2:2。 445 446b) DatePickerDialog内容与弹窗左右边界间距变更 447 448变更前:内容与弹窗左右边界无间距。 449 450变更后:内容与弹窗左右边界有24vp间距。 451 452c) DatePickerDialog中picker上下间距变更 453 454变更前:dialog中datePicker无上下间距。 455 456变更后:dialog中datePicker上下间距为8vp。 457 458如下图所示为变更前后效果对比: 459 460| 变更前 | 变更后 | 461|---------|---------| 462|  |  | 463|  |  | 464 465**API Level** 466 467API Level 8,在API 12进行版本隔离 468 469**变更发生版本** 470 471从OpenHarmony SDK 5.0.0.21开始。 472 473**适配指导** 474 475默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。 476 477## cl.arkui.9 快捷键接口keyboardShortcut匹配规则变更为严格匹配,匹配成功后拦截后续按键事件处理 478 479**访问级别** 480 481公开接口 482 483**变更原因** 484 485快捷键匹配原则过于宽松,例如绑定了CTRL+A的快捷键事件,实际使用CTRL+SHIFT+A依然能成功触发该事件。 486快捷键事件被匹配并消费后依然会继续下发,并可能触发后续按键事件,例如被输入法响应。 487 488**变更影响** 489 490该变更为非兼容性变更。 491 492变更前:绑定的快捷键是当前已触发按键的子集,即可触发快捷键。触发快捷键后,按键事件会继续触发`onKeyEvent`事件等其他按键事件。 493 494变更后:绑定的快捷键必须与当前触发的按键完全一致,方能触发快捷键。触发快捷键即视为按键已消费,不再触发其他按键事件。 495 496**API Level** 497 49810 499 500**变更发生版本** 501 502从OpenHarmony SDK 5.0.0.19开始。 503 504**适配指导** 505 506快捷键的按键集合严格对应所需要的按键。 507 508## cl.arkui.10 onPageHide变更 509 510**访问级别** 511 512公开接口 513 514**变更背景** 515 516当前router中会在页面创建之前调用onPageHide生命周期,但是对应页面实际上并没有隐藏。 517 518**变更影响** 519 520该行为变更为非兼容性变更。 521 522**API Level** 523 524API Level 7,在API Version 12生效。 525 526**变更发生版本** 527 528从OpenHarmony SDK 5.0.0.21开始。 529 530**变更的接口/组件** 531 532涉及接口 [onPageHide](../../../application-dev/reference/apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpagehide)。 533 534API Version 12前:页面生命周期先触发退出页面隐藏onPageHide,再触发进场页面的aboutToAppear 535 536API Version 12后:页面跳转时,先触发进来页面的创建生命周期aboutToAppear,再触发退出页面的onPageHide生命周期。 537 538**适配指导** 539 540依赖退出页面的onPageHide与进场页面的aboutToAppear生命周期执行的场景可以在aboutToAppear中通过事件通知机制,将触发退出页面的onPageHide中的实现逻辑。 541 542## cl.arkui.11 NavDestination生命周期变更 543 544**访问级别** 545 546公开接口 547 548**变更原因** 549 5501. NavDestination组件有转场动画场景和无转场动画场景生命周期不一致。 551 5522. NavDestination所在自定义组件销毁生命周期早于Destination的销毁生命周期。 553 554**变更影响** 555 556该变更为非兼容性变更。如果开发者依赖Destination所在外层自定义组件onAboutToDisAppear以及Destination的onDisAppear生命周期执行顺序可能会受到影响。 557 558**起始API Level** 559 560API Level 10 561 562**变更发生版本** 563 564从OpenHarmony SDK 5.0.0.21开始。 565 566**变更的接口/组件** 567 568[NavDestination](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-navdestination.md)生命周期 569 570变更前: 571 572| 变更前有动画 | 变更前无动画 | 573|---|---| 574| |  | 575 5761. 有动画场景:onAboutToAppear(进场NavDestination页面) -> onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onShown(进场NavDestination页面) -> onAboutToDisAppear(退场NavDestination页面) -> onDisAppear(退场NavDestination页面)。 577 5782. 无动画场景: 579onAboutToAppear(进场NavDestination页面) -> onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onAboutToDisAppear(退场NavDestination页面) -> onDisAppear(退场NavDestination页面)-> onShown(进场NavDestination页面)。 580 581变更后: 582 583onAboutToAppear(进场NavDestination页面)->onAppear(进场NavDestination页面) -> onHidden(退出NavDestination页面) -> onShown(进场NavDestination页面) -> onDisAppear(退出NavDestination页面) -> onAboutToDisAppear(退出NavDestination页面)。 584 585**适配指导** 586 587依赖进场页面的aboutToAppear与退场页面aboutToDisAppear执行时间先后顺序的场景,可以将aboutToDisAppear生命周期转到willDisAppear生命周期中或者Navigation路由拦截setInterception的didShow回调中处理。 588 589## cl.arkui.12 select组件样式变更 590 591**访问级别** 592 593公开接口 594 595**变更原因** 596 597提供小型化Select组件下拉按钮,相比于正常尺寸更小,以满足开发者在不同场景下的需求,获得更好的用户体验。 598 599**变更影响** 600 601该变更为非兼容性变更。 602 6031. 新增加controlSize设置select下拉按钮默认尺寸(NORMAL、SMALL) 604 605涉及属性列表: 606 607| 属性 | NORMAL 组件 | SMALL 组件 | 608| ------------ | --------------------------------- | --------------------------------- | 609| 背板高度 | 40vp | 28vp | 610| 背板最小宽度 | 68vp | 56vp | 611| 背板圆角 | 20vp | 14vp | 612| 图标高度 | 24vp | 20vp | 613| 图标宽度 | 12vp | 10vp | 614| 图标间距 | 上间距8vp 、右间距16vp、下间距8vp | 上间距4vp 、右间距12vp、下间距4vp | 615| 文本大小 | 16fp | 14fp | 616| 文本间距 | 上间距8vp 、左间距16vp、下间距8vp | 上间距4vp 、左间距12vp、下间距4vp | 617 618变更前,NORMAL的背板最小宽度是66vp; 619 620 621 622变更后,NORMAL的背板最小宽度是68vp; 623 624 625 6262. 修改select下拉按钮默认颜色, 627 628变更前,默认背景颜色是系统资源中的`ohos_id_color_card_bg`; 629 630 631 632变更后,默认背景颜色是系统资源中的`ohos_id_color_button_normal`。 633 634 635 6363. controlSize、width、height接口作用优先级: 637 638 1)如果开发者只设置了width和height,当文字大小设置的是比较大的值的时候,文字超出组件大小,且以省略号方式显示; 639 640 2)如果开发者只设置了controlSize,没有设置width和height,组件宽高自适应文字,文字不超出组件,并设置最小宽度minWidth和最小高度minHeight; 641 642 3)如果controlSize、width、height接口都设置了,width和height设置的值生效,但如果width和height设置的值小于controlSize设置的最小宽度minWidth和最小高度minHeight,width和height设置的值不生效,宽高仍保持controlSize设置的最小宽度minWidth和最小高度minHeight。 643 644 宽度和高度随字体大小自适应示意图: 645 646  647 6484. disabled状态的select下拉按钮背景色的opacity: 649 650变更前,disabled状态的select下拉按钮背景色不透明。 651 652 653 654变更后,disabled状态的select下拉按钮背景色与字体的opacity一致。 655 656 657 658**起始 API Level** 659 66012 661 662**变更发生版本** 663 664从OpenHarmony SDK 5.0.0.21 版本开始。 665 666**变更的接口/组件** 667 668Select组件 669 670**适配指导** 671 672请查阅[select组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-select.md)文档进行适配。 673 674## cl.arkui.13 富文本的SetSelection接口,光标行为变更 675 676**访问级别** 677 678公开接口 679 680**变更原因** 681 682依照UX规范 683 684**变更影响** 685 686该变更为非兼容性变更。API version 11及以前: 687 688SetSelection接口start=end!=-1时,将光标移动到start位置。 689 690API version 12及以后: 691 692SetSelection接口start=end!=-1时,视为选中失败,不改变光标位置。 693 694| 变更前 | 变更后 | 695|---------|---------| 696|  |  | 697 698**起始 API Level** 699 70011 701 702**变更发生版本** 703 704从OpenHarmony SDK 5.0.0.21 版本开始。 705 706**变更的接口/组件** 707 708RichEditor组件。 709 710**适配指导** 711 712默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。 713 714## cl.arkui.14 NavDestination标题栏按钮默认背板、标题字体字号等默认样式变更 715 716**访问级别** 717 718公开接口 719 720**变更原因** 721 722UX样式变更 723 724**变更影响** 725 726该变更为非兼容性变更,只影响NavDestination组件的默认样式。 727 728- 变更前 729 1. NavDestination标题栏按钮无背板。 730 2. NavDestination标题栏主标题字重为MEDIUM。 731 732- 变更后 733 1. NavDestination标题栏按钮增加圆形背板。 734 2. NavDestination标题栏主标题字重为BOLD。 735 3. NavDestination默认返回按钮图标更新。 736 737 如下图所示为变更前后效果对比: 738 739 | 变更前 | 变更后 | 740|---------|---------| 741|  |  | 742 743**起始 API Level** 744 745API 9 746 747**变更发生版本** 748 749从OpenHarmony SDK 5.0.0.21 版本开始。 750 751**变更的接口/组件** 752 753NavDestination组件。 754 755**适配指导** 756 757默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。 758 759## cl.arkui.15 EditableTitleBar默认样式变化 760 761**访问级别** 762 763公开接口 764 765**变更原因** 766 767UX样式增强 768 769**变更影响** 770 771该变更为非兼容性变更。 772 773变更前: 7741. 主标题字重为Regular; 7752. 图标大小为24*24; 7763. 图标热区大小为48*48,圆角方形; 7774. 标题栏高度为56vp; 7785. 标题与左侧图标间距12vp。 779 780变更后: 7811. 主标题字重为Bold; 7822. 图标大小为20*20; 7833. 图标增加40*40灰色圆形背板; 7844. 标题栏最小高度为56vp,标题上下间距4vp,超过56vp时,高度自适应; 7855. 标题与左侧图标间距8vp。 786 787back图标样式变更。 788 789变更前后对比效果,如下图所示: 790| 变更前 | 变更后 | 791|---------|---------| 792|  |  | 793 794**起始API Level** 795 79610 797 798**变更发生版本** 799 800从OpenHarmony SDK 5.0.0.21 版本开始。 801 802**变更的接口/组件** 803 804EditableTitleBar 805 806**适配指导** 807 808默认效果变更,无需适配。但应注意变更后的默认效果是否符合预期。 809 810 811## cl.arkui.16 Navigation默认样式变化 812 813**访问级别** 814 815公开接口 816 817**变更原因** 818 819UX样式增强 820 821**变更影响** 822 823该变更为非兼容性变更。 824 825变更前: 8261. Full、Free模式非自定义主标题字重为Medium; 8272. Menu图标大小为24*24; 8283. Menu图标热区大小为48*48,圆角方形; 8294. 标题栏左、右间距为24vp; 8305. Free模式收齐时,非自定义主标题字号为24fp。 831 832变更后: 8331. Full、Free模式非自定义主标题字重为Bold; 8342. Menu图标大小为20*20; 8353. Menu图标增加40*40灰色圆形背板; 8364. 标题栏左、右间距为16vp; 8375. Free模式收齐时,非自定义主标题字号为26fp。 838 839变更前后对比效果,如下图所示: 840| 变更前 | 变更后 | 841|---------|---------| 842|  |  | 843|  |  | 844 845**起始API Level** 846 8478 848 849**变更发生版本** 850 851从OpenHarmony SDK 5.0.0.21 版本开始。 852 853**变更的接口/组件** 854 855EditableTitleBar 856 857**适配指导** 858 859默认效果变更,无需适配。但应注意变更后的默认效果是否符合预期。 860 861## cl.arkui.17 TimePicker时分秒前置零默认样式变更 862 863**访问级别** 864 865公开接口 866 867**变更原因** 868 869UX样式变更 870 871**变更影响** 872 873该变更为非兼容性变更,只影响TimePicker组件的默认样式。 874 875- 变更前 876 TimePicker组件12小时制小时默认有前置零。 877 878- 变更后 879 TimePicker组件12小时制小时默认没有前置零。 880 881 如下图所示为变更前后效果对比: 882 883 | 变更前 | 变更后 | 884|---------|---------| 885|  |  | 886 887**起始 API Level** 888 889API 12 890 891**变更发生版本** 892 893从OpenHarmony SDK 5.0.0.21 版本开始。 894 895**变更的接口/组件** 896 897TimePicker组件。 898 899**适配指导** 900 901默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。 902 903## cl.arkui.18 RichEditor组件symbol动效变更 904 905**访问级别** 906 907公开接口 908 909**变更原因** 910 911依照UX规范 912 913**变更影响** 914 915该变更为非兼容性变更。 916 917变更前: 918RichEditor组件在编辑态支持播放symbol动效。 919 920变更后: 921RichEditor组件在编辑态不支持播放symbol动效。 922 923**起始API Level** 924 92511 926 927**变更发生版本** 928 929从OpenHarmony SDK 5.0.0.21 版本开始。 930 931**变更的接口/组件** 932 933RichEditor 934 935**适配指导** 936 937默认效果变更,无需适配。 938 939## cl.arkui.19 allowDrop校验变更 940 941**访问级别** 942 943公开接口 944 945**变更原因** 946 947allowDrop用于接受方组件指定自己支持的拖拽数据类型,并将该值应用到拖拽方组件的角标显示上。但没有严格执行不匹配时的禁止落入逻辑,仍然会回调开发者的onDrop并传递数据。 948 949**变更影响** 950 951该变更为不兼容变更。 952 953变更前: 954当allowDrop声明的数据类型与拖拽组件的数据类型完全不匹配时,仍然会回调开发者设置的onDrop并传递数据。 955 956变更后: 957当allowDrop声明的数据类型与拖拽组件的数据类型完全不匹配时,不会回调开发者设置的onDrop。 958 959**起始API Level** 960 96112 962 963**变更发生版本** 964 965从OpenHarmony SDK 5.0.0.21 版本开始。 966 967**变更的接口/组件** 968 969allowDrop 970 971**适配指导** 972 9731. 以下两种情况无影响,无需适配: 974 975 (1)未配置allowDrop属性,系统默认其可处理所有类型数据。 976 977 (2)配置了数据类型,且onDrop中也可处理配置的数据类型。 978 9792. 以下情况会受到影响,需适配: 980 981 配置了allowDrop属性,并声明了一些数据类型。但是,onDrop会对未声明过的数据类型进行处理,可在allowdrop中增加onDrop需要处理的数据类型声明。 982 983 **示例:** 984 985 ``` 986 // xxx.ets 987 988 @Entry 989 @Component 990 struct ImageExample { 991 @State uri: string = "" 992 @State AblockArr: string[] = [] 993 @State BblockArr: string[] = [] 994 @State AVisible: Visibility = Visibility.Visible 995 @State dragSuccess :Boolean = false 996 @State dragDataTypes: UniformDataType[] | null = [ null ] 997 998 build() { 999 Column() { 1000 Text('Image拖拽') 1001 .fontSize('30dp') 1002 Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceAround }) { 1003 Image($r('app.media.icon')) 1004 .width(100) 1005 .height(100) 1006 .border({ width: 1 }) 1007 .visibility(this.AVisible) 1008 .draggable(true) 1009 .onDragEnd((event: DragEvent) => { 1010 let ret = event.getResult(); 1011 if(ret == 0) { 1012 console.log("enter ret == 0") 1013 this.AVisible = Visibility.Hidden; 1014 } else { 1015 console.log("enter ret != 0") 1016 this.AVisible = Visibility.Visible; 1017 } 1018 }) 1019 } 1020 .margin({ bottom: 20 }) 1021 Row() { 1022 Column(){ 1023 List(){ 1024 ForEach(this.AblockArr, (item:string, index) => { 1025 ListItem() { 1026 Image(item) 1027 .width(100) 1028 .height(100) 1029 .border({width: 1}) 1030 } 1031 .margin({ left: 30 , top : 30}) 1032 }, (item:string) => item) 1033 } 1034 .height('90%') 1035 .width('100%') 1036 .allowDrop(this.dragDataTypes) 1037 .onDrop((event?: DragEvent, extraParams?: string) => { 1038 this.uri = JSON.parse(extraParams as string).extraInfo; 1039 this.AblockArr.splice(JSON.parse(extraParams as string).insertIndex, 0, this.uri); 1040 console.log("ondrop not udmf data"); 1041 }) 1042 .border({width: 1}) 1043 } 1044 .height("50%") 1045 .width("45%") 1046 } 1047 }.width('100%') 1048 } 1049 } 1050 ```