1# ArkUI子系统Changelog 2 3## cl.arkui.1 自定义弹窗避让软键盘行为优化 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11从API version 12开始,将自定义弹窗避让软键盘行为优化为弹窗到达极限位置之后进行高度压缩。 12 13**变更影响** 14 15该变更为非兼容性变更。 16 17API version 11及以前,自定义弹窗避让软键盘时仅抬起软键盘对应高度,横屏等高度不足场景或自定义弹窗高度较大场景下,会出现弹窗超出屏幕显示的情况。 18 19API version 12及以后,将自定义弹窗避让软键盘行为优化为弹窗到达极限位置之后进行高度压缩,而不会使弹窗超出极限位置显示。 20 21**起始API Level** 22 23CustomDialogController: API7 24openCustomDialog(options: CustomDialogOptions): API11 25openCustomDialog<T extends Object>(dialogContent: ComponentContent<T>, options?: promptAction.BaseDialogOptions): API12 26 27**变更发生版本** 28 29从OpenHarmony SDK 5.0.0.29 版本开始。 30 31**变更的接口/组件** 32 33自定义弹窗 34 35**适配指导** 36 37默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。 38 39## cl.arkui.2 Badge组件显隐时增加缩放动效 40 41**访问级别** 42 43公开接口 44 45**变更原因** 46 47给Badge组件显隐时增加缩放动画,代替简单的出现与消失 48 49**变更影响** 50 51该变更为非兼容性变更。 52 53API version 11及以前:Badge组件显隐时没有缩放动效。 54 55API version 12及以后:Badge组件前后状态相同时不缩放,显隐时增加缩放动效。 56 57**起始 API Level** 58 597 60 61**变更发生版本** 62 63从OpenHarmony SDK 5.0.0.29开始。 64 65**适配指导** 66 67默认样式变更调整,无需适配。 68 69## cl.arkui.3 TimePickerDialog、DatePickerDialog支持设置前导零 70 71**访问级别** 72 73公开接口 74 75**变更原因** 76 77开发者给TimePickerDialog、DatePickerDialog设置是否需要前导零。 78 79**变更影响** 80 81该变更为不兼容变更,只影响TimePickerDialog、DatePickerDialog组件的默认样式。 82 83- 变更前: TimePickerDialog、DatePickerDialog组件12小时制小时默认有前置零。 84 85- 变更后: TimePickerDialog、DatePickerDialog组件12小时制小时默认没有前置零。 86 87 如下图所示为变更前后效果对比: 88 89 | 变更前 | 变更后 | 90|---------|---------| 91|  |  | 92 93 | 变更前 | 变更后 | 94|---------|---------| 95|  |  | 96 97**起始API Level** 98 9912 100 101**变更发生版本** 102 103从OpenHarmony SDK 5.0.0.29开始。 104 105**适配指导** 106 107默认行为变更,无需适配,但应注意时间窗口是否按照设置显示前导零。 108 109## cl.arkui.4 构造@ComponentV2修饰的自定义组件时,增加对常规变量的构造赋值校验 110 111**访问级别** 112 113公开接口 114 115**变更原因** 116 117该变更为不兼容变更。 118 119在@ComponentV2修饰的自定义组件中使用@Local、@Provider()、@Consumer()、常规变量(没有任何装饰器修饰的,不涉及更新的普通变量),在构造的时候传参赋值,进行校验并输出错误信息。 120 121**变更影响** 122 123执行下列用例: 124 125```ts 126@Entry 127@ComponentV2 128struct v2DecoratorInitFromParent { 129 build() { 130 Column() { 131 testChild({ 132 regular_value: "hello", 133 local_value: "hello", 134 provider_value: "hello", 135 consumer_value: "hello" 136 }) 137 } 138 } 139} 140 141@ComponentV2 142struct testChild { 143 regular_value: string = "hello"; 144 @Local local_value: string = "hello"; 145 @Provider() provider_value: string = "hello"; 146 @Consumer() consumer_value: string = "hello"; 147 build() {} 148} 149``` 150 151变更前无报错 152 153变更后报错信息为: 154 155Property 'regular_value' in the custom component 'testChild' cannot initialize here (forbidden to specify). 156Property 'local_value' in the custom component 'testChild' cannot initialize here (forbidden to specify). 157Property 'provider_value' in the custom component 'testChild' cannot initialize here (forbidden to specify). 158Property 'consumer_value' in the custom component 'testChild' cannot initialize here (forbidden to specify). 159 160**起始API Level** 161 162不涉及API变更 163 164**变更发生版本** 165 166从OpenHarmony SDK 5.0.0.29开始。 167 168**适配指导** 169 170如果开发者不按规范使用对应范式,则需按日志提示信息进行修改。 171 172## cl.arkui.5 Video切换视频源时显示预览图 173 174**访问级别** 175 176公开接口 177 178**变更原因** 179 180视频源切换时预览图规格表现不一致。 181 182**变更影响** 183 184该变更为非兼容性变更。 185 186变更前:视频播放后执行视频源切换时不显示预览图,再次执行视频源切换时显示预览图。 187 188变更后:每次执行视频源切换都会显示预览图。 189 190**起始API Level** 191 1927 193 194**变更发生版本** 195 196从OpenHarmony SDK 5.0.0.29开始。 197 198**适配指导** 199 200如果应用中使用了Video组件中的previewUri属性,且存在视频源切换行为,开发者需按照预览图是否展示的最新逻辑进行适配。 201 202## cl.arkui.6 BindSheet半模态组件横屏支持设置档位与高度 203 204**访问级别** 205 206公开接口 207 208**变更原因** 209 210手机横屏时,BindSheet支持开发者设置挡位和高度 211 212**变更影响** 213 214该变更为不兼容性变更。 215 216API version 11及以前:bindSheet在手机横屏时不支持设置挡位和高度,默认高度距离横屏窗口顶部8vp。 217 218API version 12及以后:bindSheet在手机横屏时支持开发者设置挡位和高度,最大高度距离横屏窗口顶部8vp。 219 220**起始API Level** 221 22210 223 224**变更发生版本** 225 226从OpenHarmony SDK 5.0.0.29开始。 227 228**适配指导** 229 230默认行为变更,需应用适配。横竖屏设置挡位规则保持一致,参考detents属性的设置请查阅[半模态组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-universal-attributes-sheet-transition.md)文档进行适配。 231 232## cl.arkui.7 RichEditor/TextInput/TextArea/Search组件编辑态长按时显示单光标 233 234**访问级别** 235 236公开接口 237 238**变更原因** 239 240RichEditor/TextInput/TextArea/Search组件在编辑态下,若检测到手指长按后进行move操作,则在当前手指触摸位置显示光标。 241 242**变更影响** 243 244该变更为不兼容变更,只影响RichEditor/TextInput/TextArea/Search组件编辑态长按逻辑。 245 246- 变更前: RichEditor/TextInput/TextArea/Search组件编辑态长按时选中触摸内容,并出现双手柄。 247 248- 变更后: RichEditor/TextInput/TextArea/Search组件编辑态长按时显示单光标(涉及光标动效),而不会选中触摸内容。 249 250 如下图所示为变更前后效果对比: 251 252 | 变更前 | 变更后 | 253|---------|---------| 254|  |  | 255 256**起始API Level** 257 25811 259 260**变更发生版本** 261 262从OpenHarmony SDK 5.0.0.29开始。 263 264**适配指导** 265 266UX统一文本编辑交互规范,开发者无需适配。 267 268## cl.arkui.8 Dialog组件内AlertDialogParam弹窗类型和ActionSheetOptions弹窗类型支持镜像能力 269 270**访问级别** 271 272公开接口 273 274**变更原因** 275 276Dialog组件内AlertDialogParam弹窗类型和ActionSheetOptions弹窗类型支持镜像能力。 277 278**变更影响** 279 280该变更为不兼容变更。 281 282- 变更前: 283 284 Dialog组件内AlertDialogParam弹窗类型的cornerRadius接口不支持LocalizedBorderRadiuses类型设置圆角。 285 286 Dialog组件内AlertDialogParam弹窗类型的borderColor接口不支持LocalizedEdgeColors类型设置颜色。 287 288 Dialog组件内AlertDialogParam弹窗类型的borderWidth接口不支持LocalizedEdgeWidths类型设置宽度。 289 290 Dialog组件内ActionSheetOptions弹窗类型的cornerRadius接口不支持LocalizedBorderRadiuses类型设置圆角。 291 292 Dialog组件内ActionSheetOptions弹窗类型的borderColor接口不支持LocalizedEdgeColors类型设置颜色。 293 294 Dialog组件内ActionSheetOptions弹窗类型的borderWidth接口不支持LocalizedEdgeWidths类型设置宽度。 295 296- 变更后: 297 298 Dialog组件内AlertDialogParam弹窗类型的cornerRadius接口支持LocalizedBorderRadiuses类型设置圆角。 299 300 Dialog组件内AlertDialogParam弹窗类型的borderColor接口支持LocalizedEdgeColors类型设置颜色。 301 302 Dialog组件内AlertDialogParam弹窗类型的borderWidth接口支持LocalizedEdgeWidths类型设置宽度。 303 304 Dialog组件内ActionSheetOptions弹窗类型的cornerRadius接口支持LocalizedBorderRadiuses类型设置圆角。 305 306 Dialog组件内ActionSheetOptions弹窗类型的borderColor接口支持LocalizedEdgeColors类型设置颜色。 307 308 Dialog组件内ActionSheetOptions弹窗类型的borderWidth接口支持LocalizedEdgeWidths类型设置宽度。 309 310AlertDialogParam弹窗类型的cornerRadius: 311 | 变更前 | 变更后 | 312|---------|---------| 313|  |  | 314 315AlertDialogParam弹窗类型的borderColor: 316 | 变更前 | 变更后 | 317|---------|---------| 318|  |  | 319 320AlertDialogParam弹窗类型的borderWidth: 321 | 变更前 | 变更后 | 322|---------|---------| 323|  |  | 324 325ActionSheetOptions弹窗类型的cornerRadius: 326 | 变更前 | 变更后 | 327|---------|---------| 328|  |  | 329 330ActionSheetOptions弹窗类型的borderColor: 331 | 变更前 | 变更后 | 332|---------|---------| 333|  |  | 334 335ActionSheetOptions弹窗类型的borderWidth: 336 | 变更前 | 变更后 | 337|---------|---------| 338|  |  | 339 340**起始API Level** 341 342API 12 343 344**变更发生版本** 345 346从OpenHarmony SDK 5.0.0.29开始。 347 348**变更的接口/组件** 349 350Dialog组件内AlertDialogParam弹窗类型的cornerRadius、borderColor、borderWidth接口; 351Dialog组件内ActionSheetOptions弹窗类型的cornerRadius、borderColor、borderWidth接口。 352 353**适配指导** 354 355开发者可以在Dialog内通过AlertDialogParam弹窗类型的cornerRadius接口弹窗设置圆角,且当参数类型为LocalizedBorderRadiuses类型时,支持随语言习惯改变布局顺序。 356 357开发者可以在Dialog内通过AlertDialogParam弹窗类型的borderColor接口设置边框颜色,且当参数类型为LocalizedEdgeColors类型时,支持随语言习惯改变布局顺序。 358 359开发者可以在Dialog内通过AlertDialogParam弹窗类型的borderWidth接口设置边框宽度,且当参数类型为LocalizedEdgeWidths类型时,支持随语言习惯改变布局顺序。 360 361开发者可以在Dialog内通过ActionSheetOptions弹窗类型的cornerRadius接口弹窗设置圆角,且当参数类型为LocalizedBorderRadiuses类型时,支持随语言习惯改变布局顺序。 362 363开发者可以在Dialog内通过ActionSheetOptions弹窗类型的borderColor接口设置边框颜色,且当参数类型为LocalizedEdgeColors类型时,支持随语言习惯改变布局顺序。 364 365开发者可以在Dialog内通过ActionSheetOptions弹窗类型的borderWidth接口设置边框宽度,且当参数类型为LocalizedEdgeWidths类型时,支持随语言习惯改变布局顺序。 366 367 368```ts 369import { LengthMetrics } from '@kit.ArkUI'; 370 371@Entry 372@Component 373struct Example { 374 build() { 375 Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 376 Button('Click to Show') 377 .onClick(() => { 378 AlertDialog.show( 379 { 380 title: 'title', 381 message: 'text', 382 autoCancel: true, 383 alignment: DialogAlignment.Center, 384 offset: { dx: 0, dy: -50 }, 385 gridCount: 3, 386 width: 300, 387 height: 200, 388 borderWidth: // 新增API示例 389 { 390 top: LengthMetrics.px(60), 391 end: LengthMetrics.px(30), 392 bottom: LengthMetrics.px(60), 393 start: LengthMetrics.px(60) 394 }, 395 cornerRadius: // 新增API示例 396 { 397 topStart: LengthMetrics.vp(120), 398 topEnd: LengthMetrics.vp(32), 399 bottomStart: LengthMetrics.vp(32), 400 bottomEnd: LengthMetrics.vp(32) 401 }, 402 borderColor: // 新增API示例 403 { 404 top: Color.Black, 405 end: Color.Red, 406 bottom: Color.Black, 407 start: Color.Black 408 }, 409 backgroundColor: Color.White, 410 } 411 ) 412 ActionSheet.show({ 413 title: 'ActionSheet title', 414 subtitle: 'ActionSheet subtitle', 415 message: 'message', 416 autoCancel: true, 417 418 alignment: DialogAlignment.Bottom, 419 offset: { dx: 0, dy: -10 }, 420 borderWidth: // 新增API示例 421 { 422 top: LengthMetrics.px(60), 423 end: LengthMetrics.px(30), 424 bottom: LengthMetrics.px(60), 425 start: LengthMetrics.px(60) 426 }, 427 cornerRadius: // 新增API示例 428 { 429 topStart: LengthMetrics.vp(120), 430 topEnd: LengthMetrics.vp(32), 431 bottomStart: LengthMetrics.vp(32), 432 bottomEnd: LengthMetrics.vp(32) 433 }, 434 borderColor: // 新增API示例 435 { 436 top: Color.Black, 437 end: Color.Red, 438 bottom: Color.Black, 439 start: Color.Black 440 }, 441 sheets: [ 442 { 443 title: 'apples', 444 action: () => { 445 console.log('apples') 446 } 447 }, 448 { 449 title: 'bananas', 450 action: () => { 451 console.log('bananas') 452 } 453 }, 454 { 455 title: 'pears', 456 action: () => { 457 console.log('pears') 458 } 459 } 460 ] 461 }) 462 }) 463 }.width('100%') 464 .height('100%') 465 } 466} 467```