• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ArkUI子系统Changelog
2
3## cl.arkui.1 Progress组件动态改变宽高时,内容区宽高变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11容器宽高改变,Progress组件内容区未能实时触发刷新,需要更新别的属性后宽高才会改变。
12
13**变更影响**
14
15此变更无需应用适配。
16
17| 变更前                                                                                                                                                        | 变更后                                                                                                                |
18| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
19| 当容器的宽度或高度发生变化时,Progress组件的内容区域未能实时更新。需要更改其他属性后,其尺寸才会相应调整。<br>![progress_before](figures/progress_before.png) | 当容器的宽高发生变化时,Progress组件的内容区域宽高也会随之相应调整。<br>![progress_after](figures/progress_after.png) |
20
21**起始API Level**
22
239
24
25**变更发生版本**
26
27从OpenHarmony 5.1.0.53 版本开始。
28
29**变更的接口/组件**
30
31Progress。
32
33**适配指导**
34
35展示效果变更,无需适配,但应注意变更后的效果是否符合开发者预期。
36
37## cl.arkui.2 无障碍绿框绘制区域和聚焦区域修改为组件触摸热区
38
39**访问级别**
40
41公开接口
42
43**变更原因**
44
45无论是否开启无障碍,触碰操作控件的范围都应保持一致,无需为无障碍单独定义操控范围。
46
47**变更影响**
48
49此变更不涉及应用适配。
50
51- 变更前:无障碍绿框绘制区域、聚焦区域为组件区域。
52
53- 变更后:无障碍绿框绘制区域、聚焦区域为组件触摸热区。
54
55**起始API Level**
56
5716
58
59**变更发生版本**
60
61从OpenHarmony SDK 5.1.0.53开始。
62
63**变更的接口/组件**
64
65arkui无障碍
66
67**适配指导**
68
69此处无需应用适配,热区显示大小的调整,无论是否配置热区,均为内部逻辑调整绿框显示位置或大小。
70
71## cl.arkui.3 拖拽缩放比例UX规则变更
72
73**访问级别**
74
75公开接口
76
77**变更原因**
78
79UX规范变更。
80
81**变更影响**
82
83此变更不涉及应用适配。
84
85变更前:通过设备栅格数来设置跟手图的大小。
86
87  | 设备大小 | 跟手图大小 |
88  | :------- | :--------- |
89  | 4栅格    | 2栅格      |
90  | 8栅格    | 3栅格      |
91  | 12栅格   | 4栅格      |
92
93变更后:根据不同类型设备的最短边来设置缩放规则。
94
95| 拖拽对象         | 判断规则                          | 缩放规则                                                                                                                               |
96| :--------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |
97| 图文选择跟随文本 | 设备最短边小于600vp。             | 跟手图最大高度不超过屏幕短边长度的1/2且最大宽度不超过屏幕短边长度,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。      |
98| 图文选择跟随文本 | 设备最短边大于600vp,小于840vp。  | 跟手图最大高度不超过屏幕短边长度的1/4且最大宽度不超过屏幕短边长度的1/2,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
99| 图文选择跟随文本 | 设备最短边大于840vp,小于1440vp。 | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的2/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
100| 图文选择跟随文本 | 设备最短边大于1440vp。            | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的2/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
101| 图片拖拽缩放     | 设备最短边小于600vp。             | 跟手图最大高度不超过屏幕短边长度的1/2且最大宽度不超过屏幕短边长度的1/2,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
102| 图片拖拽缩放     | 设备最短边大于600vp,小于840vp。  | 跟手图最大高度不超过屏幕短边长度的1/4且最大宽度不超过屏幕短边长度的1/4,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
103| 图片拖拽缩放     | 设备最短边大于840vp,小于1440vp。 | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的1/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
104| 图片拖拽缩放     | 设备最短边大于1440vp。            | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的1/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
105
106**起始API Level**
107
10813
109
110**变更发生版本**
111
112从OpenHarmony SDK 5.1.0.53开始。
113
114**变更的接口/组件**
115
116UX规格变更,不涉及接口和组件。
117
118**适配指导**
119
120默认行为变更,无需适配。
121
122## cl.arkui.4 在使用手写笔操作时,应用从onTouch回调中获取到的TouchEvent,其中touches数组内的TouchObject的id值发生变更。
123
124**访问级别**
125
126公开接口
127
128**变更原因**
129
130在手写笔场景下,TouchEvent中changedTouches数组内的TouchObject的id,与touches数组内的TouchObject的id不一致。
131
132**变更影响**
133
134此变更不涉及应用适配。
135
136- 变更前:在使用手写笔操作时,应用在onTouch回调中获取到的TouchEvent中,touches数组中TouchObject的id和changedTouches中的TouchObject的id不一致。
137
138- 变更后:在使用手写笔操作时,应用在onTouch回调中获取到的TouchEvent中,touches数组中TouchObject的id和changedTouches中的TouchObject的id保持一致。
139
140**起始API Level**
141
1427
143
144**变更发生版本**
145
146从OpenHarmony SDK 5.1.0.53开始。
147
148**变更的接口/组件**
149
150| 文件               | 接口                                       |
151| ------------------ | ------------------------------------------ |
152| common.d.ts        | onTouch回调中的TouchEvent                  |
153| common.d.ts        | onTouchIntercept回调中的TouchEvent         |
154
155**适配指导**
156
157默认行为变更,应用无需适配。
158
159## cl.arkui.5 tablet和2in1设备的onPageHide和onHidden生命周期函数变更
160
161**访问级别**
162
163公开接口
164
165**变更原因**
166
167优化tablet和2in1设备的onPageHide和onHidden生命周期函数,确保函数内部修改状态变量时能够触发页面刷新,也能够触发状态变量的监听函数。
168
169**变更影响**
170
171此变更涉及应用适配。
172
173- 变更前:
174  1. 在onPageHide/onHidden中修改状态变量可能不会触发对应的监听函数,示例如下:
175     ```ts
176     @Component
177     struct TestComponent {
178       @Prop @Watch('onPageVisibilityChange') isPageShow: boolean;
179       onPageVisibilityChange(): void {
180         // 期望状态变量的修改会触发当前函数,实际不一定会触发。
181         console.log(`onPageVisibilityChange ${this.isPageShow}`)
182       }
183       build() {
184         Text('test')
185       }
186     }
187     @Component
188     struct DestA {
189       @State isPageShow: boolean = false;
190       build() {
191         NavDestination() {
192           Stack() {
193             TestComponent({isPageShow: this.isPageShow})
194           }
195         }.onShown(() => {
196           this.isPageShow = true;
197         })
198         .onHidden(() => {
199           // 退后台时会触发该生命周期,进一步改变状态变量
200           this.isPageShow = false;
201         })
202       }
203     }
204     @Entry
205     @Component
206     struct TestPage {
207       private stack: NavPathStack = new NavPathStack();
208       aboutToAppear(): void {
209         this.stack.pushPath({name: 'page'})
210       }
211       @Builder
212       MyPageMap(name: string) {
213         DestA()
214       }
215       build() {
216         Navigation(this.stack) {
217         }.hideNavBar(true)
218         .navDestination(this.MyPageMap)
219       }
220     }
221     ```
222  2. 在onPageHide/onHidden中修改状态变量可能不会刷新页面,示例如下:
223     ```ts
224     @Component
225     struct TestComponent {
226       build() {
227         Text('test1')
228       }
229       aboutToDisappear(): void {
230         console.log(`TestComponent aboutToDisappear`)
231       }
232     }
233     @Entry
234     @Component
235     struct TestPage {
236       @State isPageShow: boolean = true;
237       build() {
238         // 期望状态变量的修改会导致TestComponent会被销毁,实际不一定会被销毁。
239         if (this.isPageShow) {
240           TestComponent()
241         } else {
242           Text('test2')
243         }
244       }
245       onPageShow(): void {
246         this.isPageShow = true;
247       }
248       onPageHide(): void {
249         // 退后台时会触发该生命周期,进一步改变状态变量
250         this.isPageShow = false;
251       }
252     }
253     ```
254
255- 变更后:
256  1. 在onPageHide/onHidden中修改状态变量能够触发对应的监听函数;
257  2. 在onPageHide/onHidden中修改状态变量能够刷新页面。
258
259**起始API Level**
260
261onPageHide:API version 7,onHidden:API version 10
262
263**变更发生版本**
264
265从OpenHarmony SDK 5.1.0.53开始。
266
267**变更发生的接口/组件**
268
269[onPageHide](../../../application-dev/reference/apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpagehide),所在文件:api/@internal/component/ets/common.d.ts;[onHidden](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-navdestination.md#onhidden10),所在文件:api/@internal/component/ets/nav_destination.d.ts270
271**适配指导**
272
273仅**tablet**和**2ni1**设备需要做以下适配:
274检查是否在onPageHide/onHidden生命周期函数中修改状态变量,本次变更之后能够保证触发页面刷新,触发监听函数。
275
276## cl.arkui.7 TEXTURE模式XComponent的本地窗口缓冲区支持设置旋转变换
277
278**访问级别**
279
280公开接口
281
282**变更原因**
283
284TEXTURE模式XComponent的本地窗口缓冲区旋转变换在设置后不生效,导致开发者无法通过设置缓冲区旋转变换来调整显示画面的旋转方向。
285
286**变更影响**
287
288此变更涉及应用适配。
289
290变更前:
291设置TEXTURE模式XComponent的本地窗口缓冲区旋转变换后,旋转变换在实际显示的画面中不生效。
292
293变更后:
294设置TEXTURE模式XComponent的本地窗口缓冲区旋转变换后,旋转变换在实际显示的画面中生效。
295
296| 写入缓冲区的原始图像 | 变更前设置了缓冲区逆时针旋转90度后的实际显示画面 | 变更后设置了缓冲区逆时针旋转90度后的实际显示画面 |
297| --------- | --------- | --------- |
298|![原始图片](figures/XComponentBufferImage.PNG)|![变更前](figures/XComponentBufferTransform_before.PNG)       |![变更后](figures/XComponentBufferTransform_after.PNG)  |
299
300**起始API Level**
301
302API 10
303
304**变更发生版本**
305
306从OpenHarmony SDK 5.1.0.53开始。
307
308**变更的接口/组件**
309
310ArkUI 内置组件XComponent。
311
312**适配指导**
313
314变更后,设置TEXTURE模式XComponent的本地窗口缓冲区旋转变换后,XComponent显示的内容将根据设置进行旋转。
315如开发者原先设置过TEXTURE模式XComponent的本地窗口缓冲区旋转变换,为避免显示内容旋转,
316应将原先设置本地窗口缓冲区旋转变换的相关调用语句去除。
317```
318OHNativeWindow* window;
319// 利用XComponent的surfaceId获取本地窗口
320OH_NativeWindow_CreateNativeWindowFromSurfaceId(surfaceId, &window);
321
322// ......
323
324// 应去除此处设置本地窗口缓冲区逆时针旋转90度的调用
325OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, SET_TRANSFORM, NATIVEBUFFER_ROTATE_90);
326
327// ......
328```
329
330## cl.arkui.8 按钮默认值变更为新增圆角矩形类型
331
332**访问级别**
333
334公开接口
335
336**变更原因**
337
338原有默认类型按钮是胶囊按钮,在适老化场景下字体过大,在多行等场景下胶囊按钮文字易超出其圆角范围。不符合简单易用及高端精致原则,因此新增圆角矩形类型按钮,默认值变为新增的圆角矩形类型。
339
340**变更影响**
341
342此变更不涉及应用适配。
343
344变更前:ButtonOptions中type的默认值为ButtonType.Capsule345
346变更后:ButtonOptions中type的默认值为ButtonType.ROUNDED_RECTANGLE
347
348![roundedRectButton](figures/roundedRectButton.PNG)
349
350**起始API Level**
351
352API 9
353
354**变更发生版本**
355
356从OpenHarmony SDK 5.1.0.53开始。
357
358**变更的接口/组件**
359
360Button组件中ButtonOptions对象的type属性默认值。
361
362**适配指导**
363
364开发者在使用Button组件,创建默认类型的Button按钮时,Button按钮为ROUNDED_RECTANGLE类型。
365
366```ts
367
368@Entry
369@Component
370struct ButtonExample {
371  build() {
372    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
373      Text('Capsule button with rounded corners by default.').fontSize(9).fontColor(0xCCCCCC)
374      Flex({ alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
375        Button('Capsule')
376          .type(ButtonType.Capsule)
377          .backgroundColor(0x317aff)
378          .height(60)
379          .controlSize(ControlSize.NORMAL)
380          .width(180)
381      }
382      Text('Rounded rectangle button with rounded corners by default.').fontSize(9).fontColor(0xCCCCCC)
383      Flex({ alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
384        Button('Rounded rectangle')
385          .type(ButtonType.ROUNDED_RECTANGLE)
386          .backgroundColor(0x317aff)
387          .controlSize(ControlSize.NORMAL)
388          .height(60)
389          .width(180)
390      }
391    }.height(400).padding({ left: 35, right: 35, top: 35 })
392  }
393}
394
395```
396
397## cl.arkui.9 修复Popup高级组件宽度限制计算错误的问题
398
399**访问级别**
400
401公开接口
402
403**变更原因**
404
405目前宽度最大限制不符合ux规范,在手机屏幕场景下,会出现Popup高级组件无法撑满屏幕的情况,影响体验。
406
407**变更影响**
408
409此变更不涉及应用适配。
410
411变更前:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度-80vp。
412
413变更后:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度。
414
415| 变更前                                   | 变更后                                   |
416| ---------------------------------------- | ---------------------------------------- |
417| ![popup_before](figures/popup_before.png) | ![popup_after](figures/popup_after.png) |
418
419**起始API Level**
420
42111
422
423**变更发生版本**
424
425从OpenHarmony 5.1.0.53 版本开始。
426
427**变更的接口/组件**
428
429Popup高级组件。
430
431**适配指导**
432
433如果用户原来没有自定义Popup高级组件的宽度,且内容宽度大于320vp,变更前按320vp显示,变更后,Popup高级组件会变宽;如不符合预期,可以手动修改为想要的宽度。
434