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| ![](figures/NavigationMini_Before.jpeg) | ![](figures/NavigationMini_After.jpeg) |
22| ![](figures/NavigationMiniHideBackButton_Before.jpeg) | ![](figures/NavigationMiniHideBackButton_After.jpeg) |
23
242. Navigation Mini模式及NavDestination组件的标题栏含副标题时默认高度由82vp变更为56vp,标题居中布局;back图标变更;
25
26变更前后对比效果,如下图所示:
27
28| 变更前 | 变更后 |
29|---------|---------|
30| ![](figures/NavigationMiniSubtitle_Before.jpeg) | ![](figures/NavigationMiniSubtitle_After.jpeg) |
31| ![](figures/NavigationMiniHideBackButtonSubtitle_Before.jpeg) | ![](figures/NavigationMiniHideBackButtonSubtitle_After.jpeg) |
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| ![](figures/NavigationFull_Before.jpeg) | ![](figures/NavigationFull_After.jpeg) |
47| ![](figures/NavigationFullSubtitle_Before.jpeg) | ![](figures/NavigationFullSubtitle_After.jpeg) |
48| ![](figures/NavigationFullSubtitle2_Before.jpeg) | ![](figures/NavigationFullSubtitle2_After.jpeg) |
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![demo](figures/globalCompositeOperation.png)
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|![caretUx_before](figures/caretux_before.png)|![caretUx_after](figures/caretux_after.png)|
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|![超长错误文本变更前样式](figures/showErrorBefore.png)|![超长错误文本变更后样式](figures/showErrorAfter.png)|
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()接口实现。