1# ArkUI子系统Changelog 2 3## cl.arkui.1 Navigation、NavDestination默认样式变化 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11UX样式增强 12 13**变更影响** 14 151. Navigation Mini模式,主标题字重默认值由MEDIUM变更为BOLD;隐藏返回键时,非自定义主标题默认字号由24fp变更为26fp; 16 17变更前后对比效果,如下图所示: 18 19| 变更前 | 变更后 | 20|---------|---------| 21|  |  | 22|  |  | 23 242. Navigation Mini模式及NavDestination组件的标题栏含副标题时默认高度由82vp变更为56vp,标题居中布局;back图标变更; 25 26变更前后对比效果,如下图所示: 27 28| 变更前 | 变更后 | 29|---------|---------| 30|  |  | 31|  |  | 32 333. Navigation Full、Free模式,大标题模式,布局变更:<br/> 34变更前:标题居中布局;<br/> 35变更后:<br/> 36含副标题:<br/> 37 (1)当主标题高度+副标题高度+主副标题之间间距2vp+标题下间距8vp =< 82vp时,固定主副标题之间间距2vp,标题居中布局;<br/> 38 (2)当主标题高度+副标题高度+主副标题之间间距2vp+标题下间距8vp > 82vp时,固定标题下间距8vp,主副标题之间间距2vp,主标题向上自适应布局。<br/> 39 不含副标题:<br/> 40 (1)当标题高度 > 56vp时,固定标题下间距8vp,标题向上自适应布局;<br/> 41 (2)当标题高度 =< 56vp时,标题居中布局。<br/> 42 43变更前后对比效果,如下图所示: 44| 变更前 | 变更后 | 45|---------|---------| 46|  |  | 47|  |  | 48|  |  | 49 50 51**起始API Level** 52 539 54 55**变更发生版本** 56 57从OpenHarmony SDK 5.0.0.25 版本开始。 58 59**变更的接口/组件** 60 61Navigation、NavDestination 62 63**适配指导** 64 65默认效果变更,无需适配。但应注意变更后的默认效果是否符合预期。 66 67## cl.arkui.2 一级菜单弹出/退出动效增强,二级菜单新增STACK_EXPAND和EMBEDDED_EXPAND模式动效 68 69**访问级别** 70 71公开接口 72 73**变更原因** 74 75一级/二级菜单弹窗默认风格刷新 76 77**变更影响** 78 79一级菜单弹出/退出动效: 80变更前: 81菜单弹出/退出是透明度在变换 82 83变更后: 84菜单相对target组件弹出/退出,在透明度的基础上增加了位移缩放模糊动效 85 86二级菜单弹出/退出动效: 87变更前: 88二级菜单在一级菜单侧边展开,退出时直接消失 89变更后: 901. 开发者设置为STACK_EXPAND模式,二级菜单展开形成前后两个层级,一级菜单向后位移缩放,透明度同时切换,二级菜单中的标题和箭头以点击的menuItem为中心,向下位移至正确位置,同时箭头方向顺时针旋转90度。 912. STACK_EXPAND模式退出时,二级菜单向上位移至正确位置,且箭头逆时针旋转90度,透明度变为0,一级菜单向前位移至原位且大小恢复原样,透明度变为100%; 923. 开发者设置为EMBEDDED_EXPAND模式,二级菜单展开到合适高度,且向下的箭头顺时针旋转180度,退出时,二级菜单慢慢消失高度变为0,且箭头逆时针旋转180度。 93 94**起始 API Level** 95 9612 97 98**变更发生版本** 99 100从OpenHarmony SDK 5.0.0.25 版本开始。 101 102**变更的接口/组件** 103 104菜单 105 106**适配指导** 107 108一级菜单弹出/退出动效行为变更,无需适配,二级菜单弹出/退出动效,可以调用subMenuExpandingMode接口设置动效模式 109 110## cl.arkui.3 Canvas绘制的阴影参与混合模式 111 112**访问级别** 113 114公开接口 115 116**变更原因** 117 118变更前效果未达预期 119 120**变更影响** 121 122该变更为非兼容性变更。 123 124变更前:两个图形做混合模式时,未绘制的图形的阴影先与已绘制的图形做默认的source-over混合,未绘制的图形再与已绘制的图形与未绘制的图形的阴影混合后的图形按设定的globalCompositeOperation做混合。 125 126变更后:两个图形做混合模式时,未绘制的图形的阴影先与已绘制的图形做设定的混合,未绘制的图形再与已绘制的图形与未绘制的图形的阴影混合后的图形按照设定的globalCompositeOperation做混合。 127 128**起始 API Level** 129 1308 131 132**变更发生版本** 133 134从OpenHarmony SDK 5.0.0.25 版本开始。 135 136**变更的接口/组件** 137 138globalCompositeOperation接口与shadowBlur, shadowOffsetX或shadowOffsetY接口同时作用时存在非兼容性变更。 139 140**适配指导** 141 142默认效果变更,无需适配。但应注意变更后的效果是否符合预期。 143 144下图以globalCompositeOperation为"xor"时举例,globalCompositeOperation设定为其他值时类似: 145 146```ts 147@Entry 148@Component 149struct Demo { 150 private settings: RenderingContextSettings = new RenderingContextSettings(true) 151 private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) 152 153 build() { 154 Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 155 Canvas(this.context) 156 .width('100%') 157 .height('50%') 158 .onReady(() => { 159 this.context.fillStyle = "#f00" 160 this.context.fillRect(0, 0, 100, 50) 161 this.context.globalCompositeOperation = 'xor' 162 this.context.shadowColor = "#00f" 163 this.context.shadowOffsetX = 100 164 this.context.fillStyle = "#0f0" 165 this.context.fillRect(100, 0, 100, 50) 166 }) 167 } 168 .width('100%') 169 .height('100%') 170 } 171} 172``` 173 174 175 176## cl.arkui.4 光标默认样式变更 177 178**访问级别** 179 180公开接口 181 182**变更原因** 183 184默认样式变更。 185 186**变更影响** 187 188该变更为非兼容性变更。 189 190变更前:光标默认宽度1.50vp,光标无圆角,圆圈直径为19vp。 191 192变更后:光标默认宽度2.00vp,光标有圆角2vp,圆圈直径为20vp。 193 194变更前后对比效果,如下图所示: 195| 变更前 | 变更后 | 196|---------|---------| 197||| 198 199**起始API Level** 200 20110 202 203**变更发生版本** 204 205从OpenHarmony SDK 5.0.0.25开始。 206 207**变更的接口/组件** 208 209涉及光标的组件:TextInput、TextArea、Search、RichEditor。 210 211**适配指导** 212 213默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。 214 215## cl.arkui.5 TextInput组件错误提示文本样式变更和showCounter接口临界条件变更 216 217**访问级别** 218 219公开接口 220 221**变更原因** 222 223showError接口默认样式变更和showCounter接口不同参数时行为不一致。 224 225**变更影响** 226 227该变更为非兼容性变更。 228 229变更前:showError接口配置的错误提示文本单行超长时超出部分截断。showCounter接口只设置第一个参数value时,计数器变红的条件是达到最大字符数,设置第二个参数options时,计数器变红条件是达到最大字符数后继续输入才会变红。 230 231变更后:showError接口配置的错误提示文本单行超长时末尾显示省略号。showCounter接口达到最大字符计数器不变红,超过最大字符数计数器才会变红,使不同参数配置时触发计数器变红的临界条件相同,接口行为表现一致。 232 233变更前后对比效果,如下图所示: 234| 变更前 | 变更后 | 235|---------|---------| 236||| 237 238示例: 239 240```ts 241@Entry 242@Component 243struct demo { 244 @State errorText: string = '这是错误提示文本,这是错误提示文本,这是错误提示文本。' 245 build() { 246 Column() { 247 TextInput({ text: '请输入用户名...'}) 248 .margin({ top: 10 }) 249 .width('60%') 250 .showError(this.errorText) 251 } 252 .width('100%') 253 } 254} 255``` 256 257**起始API Level** 258 259showError:10,showCounter:11。 260 261**变更发生版本** 262 263从OpenHarmony SDK 5.0.0.25开始。 264 265**变更的接口/组件** 266 267TextInput组件showError接口和showCounter接口。 268 269**适配指导** 270 271默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。 272 273 274## cl.arkui.6 非文本组件拖拽背板支持投影和圆角效果变更 275 276**访问级别** 277 278公开接口 279 280**变更原因** 281 282拖拽时非文本组件背板新增支持投影和圆角效果。 283 284**变更影响** 285 286该变更为不兼容变更。 287 288变更前: 2891. DragPreviewOptions的成员mode只支持DragPreviewMode类型; 2902. DragPreviewMode枚举类型支持AUTO, DISABLE_SCALE。 291 292变更后: 2931. DragPreviewOptions的成员mode新增可选类型Array\<DragPreviewMode\>; 2942. DragPreviewMode枚举类型新增支持ENABLE_DEFAULT_SHADOW, ENABLE_DEFAULT_RADIUS。 295 296**起始API Level** 297 29811 299 300**变更发生版本** 301 302从OpenHarmony SDK 5.0.0.25开始。 303 304**变更的接口/组件** 305 306DragPreviewOptions接口和DragPreviewMode枚举。 307 308**适配指导** 309 310**场景一** 311 312如果应用存在将DragPreviewOptions的成员mode赋值给其他变量的情况,则存在不兼容的风险。 313``` TypeScript 314let myDragPreviewOptions: DragPreviewOptions = { mode: DragPreviewMode.AUTO } 315Image('/resource/image.jpg') 316 .height(100) 317 .width(100) 318 .margin({ top: 10 }) 319 .draggable(true) 320 .dragPreviewOptions(this.myDragPreviewOptions) 321 322// ... 323// 将myDragPreviewOptions.mode赋值给其他变量 324let myMode: DragPreviewMode = this.myDragPreviewOptions.mode 325``` 326变更后会发生编译报错,需适配修改为: 327``` TypeScript 328let myDragPreviewOptions: DragPreviewOptions = { mode: DragPreviewMode.AUTO } 329Image('/resource/image.jpg') 330 .height(100) 331 .width(100) 332 .margin({ top: 10 }) 333 .draggable(true) 334 .dragPreviewOptions(this.myDragPreviewOptions) 335 336// ... 337// 将myDragPreviewOptions.mode赋值给其他变量,需要扩展类型 338let myMode: DragPreviewMode | Array<DragPreviewMode> = this.myDragPreviewOptions.mode 339``` 340 341**场景二** 342 343变更前mode只支持传递单个值: 344 345``` TypeScript 346Image('/resource/image.jpg') 347 .width('100%') 348 .margin({ top: 10 }) 349 .draggable(true) 350 .dragPreviewOptions({ mode: DragPreviewMode.AUTO }) 351``` 352变更后mode可传递DragPreviewMode数组,同时指定多种效果。如下: 353``` TypeScript 354Image('/resource/image.jpg') 355 .width('80%') 356 .margin({ top: 10 }) 357 .draggable(true) 358 .border({ radius: { topLeft: 1, topRight: 2, bottomLeft: 4, bottomRight: 8 } }) 359 .dragPreviewOptions({ mode: [ DragPreviewMode.ENABLE_DEFAULT_SHADOW, DragPreviewMode.ENABLE_DEFAULT_RADIUS ] }) 360 361``` 362 363 364## cl.arkui.7 窗口hide接口支持范围变更,仅支持系统窗口和子窗口 365 366**访问级别** 367 368系统接口 369 370**变更原因** 371 372主窗口调用hide接口会导致不可预期的后果。 373 374**变更影响** 375 376该变更为不兼容变更。 377 378变更前:接口支持系统窗口和子窗口,针对主窗口调用hide接口可能会存在不可预期的问题。 379 380变更后:接口仅支持系统窗口和子窗口。 381 382**起始API Level** 383 3847 385 386**变更发生版本** 387 388从OpenHarmony SDK 5.0.0.25 版本开始。 389 390**变更的接口/组件** 391 392Window的hide接口。包含: 393hide(callback: AsyncCallback<void>): void; 394hide(): Promise<void>。 395 396**适配指导** 397 398hide()接口用来隐藏当前窗口,仅支持系统窗口和子窗口调用。若主窗口想实现最小化,请使用minimize()接口实现。