1# ArkUI子系统Changelog
2
3## cl.arkui.1  TextPicker内容默认布局行为变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11TextPicker布局绘制逻辑与DatePicker、TimePicker不一致, 当组件高度设置过大时,滑动选项显示数量会超过5个,导致上下边缘渐隐效果异常。
12
13**变更影响**
14
15该变更为兼容性变更。
16
17变更前,TextPicker的滑动选项总高度与组件高度相同,且滑动事件在整个组件内相应。
18
19![textpicker内容布局变更前](figures/textpicker_before.jpg)
20
21变更后,TextPicker组件高度过大时(大于5个滑动选项所需高度),组件的整体高度不发生改变,但滑动选项最多只会显示5个,在组件内上下居中显示,剩余区域将填充空白,且手势事件将只在滑动选项区域响应。
22
23![textpicker内容布局变更后](figures/textpicker_after.jpg)
24
25**API Level**
26
278
28
29**变更发生版本**
30
31从OpenHarmony SDK 5.0.0.17 开始。
32
33**变更的接口/组件**
34
35受影响的组件:TextPicker。
36
37**适配指导**
38
39默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生问题。
40
41## cl.arkui.2  Dialog在页面路由跳转时关闭行为变更
42
43**访问级别**
44
45公开接口
46
47**变更原因**
48
49在层级结构上,页面和弹窗是同级的,它们相互独立,页面路由跳转时不应自动关闭弹窗,弹窗的关闭行为应由开发者根据需要自行控制。
50
51**变更影响**
52
53该变更为非兼容性变更。
54
55变更前,若页面存在弹窗时进行路由跳转,页面内容会切换,同时也会自动关闭最后一个弹窗。
56
57变更后,若页面存在弹窗时进行路由跳转,只会进行页面内容切换,不再自动关闭弹窗,即弹窗始终处于页面之上不会消失。
58
59**API Level**
60
619
62
63**变更发生版本**
64
65从OpenHarmony SDK 5.0.0.17 开始, API 12及后续版本生效。
66
67**变更的接口/组件**
68
69受影响的组件:Router、 Dialog。
70
71**适配指导**
72
73若开发者在页面路由跳转时要关闭当前页面所有弹窗,可在路由跳转前调用弹窗的close方法进行手动关闭。
74
75示例代码如下:
76```ts
77import router from '@ohos.router';
78// 记录当前页面所有弹窗
79const dialogs: Map<string, CustomDialogController> = new Map();
80
81@CustomDialog
82struct CustomDialogExample {
83  controllerTwo?: CustomDialogController
84  build() {
85    Column() {
86      Button('点击进行路由跳转')
87        .onClick(() => {
88          // 关闭当前页面所有弹窗
89          dialogs.forEach((controller, name) => {
90            controller.close();
91          })
92          // 路由跳转
93          router.pushUrl({url: 'pages/Index'})
94        })
95    }
96  }
97}
98
99@Entry
100@Component
101struct CustomDialogUser {
102  dialogController: CustomDialogController | null = new CustomDialogController({
103    builder: CustomDialogExample(),
104  })
105  build() {
106    Column() {
107      Button('点击打开弹窗')
108        .onClick(() => {
109          if (this.dialogController != null) {
110            // 打开弹窗
111            this.dialogController.open()
112            // 记录当前弹窗
113            dialogs.set('first', this.dialogController)
114          }
115        })
116    }
117  }
118}
119```
120
121## cl.arkui.3  Image组件按照syncLoad来同步/异步加载PixelMap格式图片
122
123**访问级别**
124
125公开接口
126
127**变更原因**
128
129应用侧的某些实现场景需要Image组件支持异步加载pixelMap。
130
131**变更影响**
132
133该变更为非兼容性变更。
134
135syncLoad为Image组件的属性,用于设置是否同步加载图片。
136
137API version 12之前,无论开发者设置syncLoad为false或者true。Image组件加载PixelMap始终为同步加载,在主线程加载。
138
139API version 12之后,Image组件按照syncLoad来同步/异步加载PixelMap格式图片,若没有设置则按照syncLoad属性的默认值false进行异步加载。其中异步加载将在 **异步线程** 加载PixelMap格式图片,加载时会有“一闪”的现象。
140
141**API Level**
142
14312
144
145**变更发生版本**
146
147从OpenHarmony SDK 5.0.0.17 版本开始。
148
149**示例:**
150
151152
153**变更的接口/组件**
154
155Image组件
156
157**适配指导**
158
159若应用侧需要Image组件同步加载pixelmap,则需要设置syncLoad为true。
160