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||| 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.Sequence。 123 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>| 使用start、end参数设置borderColor、margin、padding生效。<br> | 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```