1# ArkUI子系统Changelog
2
3## cl.arkui.1 TextInput组件在非标准字体场景下showCounter接口布局变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11在大字体时,showCounter所属的TextInput组件的下侧Margin空间不足。
12
13**变更影响**
14
15该变更为不兼容变更。
16
17变更前:在设置showCounter后,TextInput组件的下侧Margin大小为固定的22vp,showCounter的垂直偏移量为字体高度。
18
19变更后:在设置showCounter后,标准字体下,TextInput组件的下侧Margin以及垂直偏移量和变更前保持一致。非标准字体设置下,TextInput组件的下侧Margin大小为16vp加上showCounter的字体高度,垂直偏移量为8vp。
20
21设置非标准字体时,变更前后对比效果如下图所示:
22| 变更前 | 变更后 |
23|---------|---------|
24|![超长错误文本变更前样式](figures/textInputBeforeModi.png)|![超长错误文本变更后样式](figures/textInputAfterModi.png)|
25
26示例:
27
28```ts
29@Entry
30@Component
31struct Index {
32  @State message: string = 'Hello World';
33
34  build() {
35    Column() {
36      TextInput({text: "输入文字1"})
37        .showCounter(true)
38        .maxLength(10)
39      TextInput({text: "输入文字2"})
40    }
41    .height('100%')
42    .width('100%')
43  }
44}
45```
46
47**起始API Level**
48
49API 11
50
51**变更发生版本**
52
53从OpenHarmony SDK 5.0.0.50开始。
54
55**变更的接口/组件**
56
57TextInput组件showCounter接口。
58
59**适配指导**
60
61默认效果变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,如不符合则应自定义修改效果控制变量以达到预期。
62
63## cl.arkui.2 当Image组件的draggable接口接收到异常值时,其默认值将由false更改为true
64
65**访问级别**
66
67公开接口
68
69**变更原因**
70
71当Image组件的draggable接口接收到异常参数,如undefined或null时,其默认值将从false更改为true,从而默认启用拖拽功能。
72
73**变更影响**
74
75该变更为不兼容变更。
76
77变更前:Image组件的draggable接口默认值为true,当传入异常值时,draggable为false,Image组件不可拖拽。
78
79变更后:Image组件的draggable接口默认值为true,当传入异常值时,draggable为true,Image组件可拖拽。
80
81**起始API Level**
82
83API 9
84
85**变更发生版本**
86
87从OpenHarmony SDK 5.0.0.50开始。
88
89**变更的接口/组件**
90
91Image组件draggable接口。
92
93**适配指导**
94
95如果为Image组件设置了可拖拽(draggable)接口并传入了异常值,想要保持该组件不可拖拽,应将draggable设置为false。
96
97示例:
98
99```ts
100@Entry
101@Component
102struct Index {
103  build() {
104    Column() {
105      Image($r("app.media.startIcon"))
106        .draggable(undefined)
107    }
108    .height('100%')
109    .width('100%')
110  }
111}
112```
113
114## cl.arkui.3 GestureGroupGestureHandlerOptions参数mode默认值变更
115
116**访问级别**
117
118公开接口
119
120**变更原因**
121
122为了与GestureGroupInterface接口行为保持一致,GestureGroupGestureHandlerOptions参数mode默认值由GestureMode.Exclusive变更为GestureMode.Sequence123
124**变更影响**
125
126该变更为不兼容变更。
127
128变更前:GestureGroupGestureHandlerOptions参数mode默认值为GestureMode.Exclusive,当开发者未设置该参数时,默认GestureGroup下的多个手势组成互斥手势组。
129
130变更后:GestureGroupGestureHandlerOptions参数mode默认值为GestureMode.Sequence,当开发者未设置该参数时,默认GestureGroup下的多个手势组成顺序手势组。
131
132**起始API Level**
133
134API 12
135
136**变更发生版本**
137
138从OpenHarmony SDK 5.0.0.50开始。
139
140**变更的接口/组件**
141
142gesture.d.ts文件GestureGroupGestureHandlerOptions接口。
143
144**适配指导**
145
146如果使用了GestureGroupGestureHandlerOptions接口并传入了异常值,想要保持手势组中手势为互斥手势,则需要将mode设置为GestureMode.Exclusive;否则,可以保持其原有状态。
147
148示例:
149
150```ts
151class MyModifierGestureGroup implements GestureModifier {
152  applyGesture(event: UIGestureEvent): void {
153    event.addGesture(
154      new GestureGroupHandler({ mode: GestureMode.Exclusive, gestures: [
155        new LongPressGestureHandler()
156              .onAction(() => {}),
157        new PanGestureHandler()
158              .onActionStart(() => {})
159              .onActionEnd(() => {})
160      ] })
161    )
162  }
163}
164
165@Entry
166@Component
167struct ModifierGesture {
168  @State modifierGroup: MyModifierGestureGroup = new MyModifierGestureGroup()
169  build() {
170    Column() {
171      Text("Modifier手势组")
172      .width(150)
173      .height(150)
174      .gestureModifier(this.modifierGroup as MyModifierGestureGroup)
175    }
176  }
177}
178```
179
180## cl.arkui.4 PanGestureInterface参数distance效果变更
181
182**访问级别**
183
184公开接口
185
186**变更原因**
187
188为了参数distance设置特殊值时行为逻辑与正常值行为逻辑保持一致,当参数distance设置为0时行为逻辑发生变化。
189
190**变更影响**
191
192该变更为不兼容变更。
193
194变更前:当PanGestureInterface参数distance设置为0时,手指触摸后(手指未发生移动),组件不触发PanGesture的回调。
195
196变更后:当PanGestureInterface参数distance设置为0时,手指触摸后(手指未发生移动),组件触发PanGesture的回调。
197
198
199**起始API Level**
200
201API 7
202
203**变更发生版本**
204
205从OpenHarmony SDK 5.0.0.50开始。
206
207**变更的接口/组件**
208
209gesture.d.ts文件GestureGroupGestureHandlerOptions接口。
210
211**适配指导**
212
213如果使用了PanGestureInterface接口,当手指移动距离达到设置的distance时,将触发PanGesture的回调。如果想要保持手指触摸后组件不触发PanGesture的回调,可以将distance设置为大于0的值。
214
215示例:
216
217```ts
218@Entry
219@Component
220struct PanGesture {
221  build() {
222    Column() {
223      Text("PanGesture")
224      .width(150)
225      .height(150)
226      .gesture(
227        PanGesture({distance: 5})
228          .onActionStart(() => {})
229      )
230    }
231  }
232}
233```
234
235## cl.arkui.5 TextClock、TextTimer使用start、end参数设置borderColor、margin、padding行为更改
236
237**访问级别**
238
239公开接口
240
241**变更原因**
242
243TextClock、TextTimer使用start、end参数设置borderColor、margin、padding未生效。
244
245**变更影响**
246
247该变更为不兼容变更。
248
249| 变更前                                                                                                                     | 变更后                                                                                                                   |
250| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
251| 使用start、end参数设置borderColor、margin、padding不生效。<br>![textclock_before](figures/textclock_before.png)| 使用start、end参数设置borderColor、margin、padding生效。<br>![textclock_after](figures/textclock_after.png) |
252
253**起始API Level**
254
25512
256
257**变更发生版本**
258
259从OpenHarmony 5.0.0.50 版本开始。
260
261**变更的接口/组件**
262
263TextClock、TextTimer。
264
265**适配指导**
266
267正确使用start、end参数设置borderColor、margin、padding。
268
269示例:
270```
271import { LengthMetrics } from '@kit.ArkUI'
272@Entry
273@Component
274struct Index {
275
276  build() {
277    Column(){
278      TextClock().borderWidth(50)
279        .borderColor({start: "#D5D5D5", end: "#D5D5D5", top: "#D5D5D5", bottom: "#D5D5D5"})
280        .padding({start: LengthMetrics.vp(20), end: LengthMetrics.vp(40)})
281        .margin({start: LengthMetrics.vp(20), end: LengthMetrics.vp(40)})
282    }
283  }
284}
285```