1# ArkUI子系统Changelog 2 3## cl.arkui.1 TextInput、TextArea、Search组件onChange事件参数内容变更 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11在预上屏输入功能启用时,当先选中一段文本再进行输入,onChange回调中的value字段将仅反映实际显示的上屏文本,不再包含原先选中的文本内容,以此确保value字段与用户界面显示的文本一致。 12 13**变更影响** 14 15此变更不涉及应用适配。 16 17运行如下示例代码: 18 19```ts 20// Index.ets 21@Entry 22@Component 23struct TextInputExample { 24 @State text: string = '' 25 controller: TextInputController = new TextInputController() 26 27 onPageShow(): void { 28 setTimeout(() => { 29 this.controller.setTextSelection(0,3); 30 }, 10); 31 } 32 build() { 33 Column() { 34 TextInput({ text:"12345", controller: this.controller }) 35 .width(380) 36 .height(60) 37 .defaultFocus(true) 38 .onChange((value: string) => { 39 console.log("value is" + value) 40 }) 41 } 42 } 43} 44``` 45变更前: 46开启预上屏输入,输入过程中,onChange回调的值为“12345” 47 48变更后: 49开启预上屏输入,输入过程中,onChange回调的值为“45” 50 51**起始API Level** 52 53API 12 54 55**变更发生版本** 56 57从OpenHarmony SDK 5.1.0.46开始。 58 59**变更的接口/组件** 60 61TextInput组件onChange事件的EditableTextOnChangeCallback参数 62 63TextArea组件onChange事件的EditableTextOnChangeCallback参数 64 65Search组件onChange事件的EditableTextOnChangeCallback参数 66 67**适配指导** 68 69变更后value参数的内容将与实际显示内容保持一致,无需进行额外的适配。若开发者希望获取全部文本内容,可利用onEditChange等事件,在输入开始前进行获取并记录。 70 71## cl.arkui.2 Text的minFontSize、maxFontSize在子组件span或属性字符串场景下,文本自适应字号设置生效 72 73**访问级别** 74 75公开接口 76 77**变更原因** 78 79能力增强,方便开发者对不同文字样式的文字做字号的适应。 80 81**变更影响** 82 83此变更涉及应用适配。 84 85变更前,Text的minFontSize、maxFontSize在子组件Span或属性字符串场景下,文本自适应字号设置不生效。 86 87变更后,Text的minFontSize、maxFontSize在子组件Span或属性字符串场景下,文本自适应字号设置生效。 88 89如下是属性字符串和Span子组件场景变更前后效果对比: 90 91| 变更前 | 变更后 | 92| :---------------------------------: | :-------------------------------: | 93||| 94 95**起始API Level** 96 97API 7 98 99**变更发生版本** 100 101从OpenHarmony SDK 5.1.0.46开始。 102 103**变更的接口/组件** 104 105Text组件的minFontSize、maxFontSize接口。 106 107**适配指导** 108 109如果在Text使用子组件或属性字符串场景下,设置了minFontSize、maxFontSize,变更后自适应字号生效,导致字号变化,如果需要保持之前的字号,可以删除minFontSize、maxFontSize属性设置。 110 111## cl.arkui.3 FrameNode被UINode包裹时isVisible接口返回值发生变更 112 113**访问级别** 114 115公开接口 116 117**变更原因** 118 119用户使用FrameNode的isVisible接口时,节点会依次向上层父节点查询可见性,如果父节点不可见,子节点也不可见。但如果子节点被UINode类型节点(如IfElse、ForEach、LazyForEach等)包裹,则向上查找过程被阻塞,无法继续查询父节点可见性。 120 121**变更影响** 122 123此变更不涉及应用适配。 124 125变更前:父节点设为不可见、子节点设为可见时,如果子节点被UINode类型节点包裹,子节点调用isVisible结果为true。 126 127变更后:父节点设为不可见、子节点设为可见时,如果子节点被UINode类型节点包裹,子节点调用isVisible结果为false。 128 129父节点设为不可见、子节点设为可见时,如果子节点被UINode类型节点包裹,调用isVisible接口返回值结果变更前后会不一致,例如: 130```ts 131import { FrameNode } from '@kit.ArkUI' 132 133@Entry 134@Component 135struct Index { 136 private stackNode: FrameNode | null = null 137 private columnNode: FrameNode | null = null 138 139 build() { 140 Column() { 141 Stack() { 142 if (true) { 143 Column() 144 .id("column") 145 .visibility(Visibility.Visible) 146 } 147 } 148 .id("stack") 149 .visibility(Visibility.Hidden) 150 151 Button("print") 152 .onClick(() => { 153 this.stackNode = this.getUIContext().getFrameNodeById("stack") 154 this.columnNode = this.getUIContext().getFrameNodeById("column") 155 if (this.stackNode) { 156 // Stack节点的可见性,为false 157 console.log("stackNode.isVisible:", this.stackNode.isVisible()) 158 } 159 if (this.columnNode) { 160 // Column节点的可见性,变更前为true,变更后为false 161 console.log("columnNode.isVisible:", this.columnNode.isVisible()) 162 } 163 }) 164 } 165 } 166} 167``` 168 169**起始API Level** 170 171API 12 172 173**变更发生版本** 174 175从OpenHarmony SDK 5.1.0.46开始。 176 177**变更的接口/组件** 178 179FrameNode.d.ts文件isVisible接口。 180 181**适配指导** 182 183默认行为变更,无需适配。 184 185## cl.arkui.4 TextClock、TextTimer使用start、end参数设置borderColor、margin、padding行为更改 186 187**访问级别** 188 189公开接口 190 191**变更原因** 192 193TextClock、TextTimer使用start、end参数设置borderColor、margin、padding未生效。 194 195**变更影响** 196 197此变更无需应用适配。 198 199| 变更前 | 变更后 | 200| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | 201| 使用start、end参数设置borderColor、margin、padding不生效。<br>| 使用start、end参数设置borderColor、margin、padding生效。<br> | 202 203**起始API Level** 204 20512 206 207**变更发生版本** 208 209从OpenHarmony 5.1.0.46 版本开始。 210 211**变更的接口/组件** 212 213TextClock、TextTimer。 214 215**适配指导** 216 217正确使用start、end参数设置borderColor、margin、padding。 218 219示例: 220``` 221import { LengthMetrics } from '@kit.ArkUI' 222@Entry 223@Component 224struct Index { 225 226 build() { 227 Column(){ 228 TextClock().borderWidth(50) 229 .borderColor({start: "#D5D5D5", end: "#D5D5D5", top: "#D5D5D5", bottom: "#D5D5D5"}) 230 .padding({start: LengthMetrics.vp(20), end: LengthMetrics.vp(40)}) 231 .margin({start: LengthMetrics.vp(20), end: LengthMetrics.vp(40)}) 232 } 233 } 234} 235``` 236 237## cl.arkui.5 Search组件searchButton属性行为变更,设置为undefined后,获取searchButton属性的值为空 238**访问级别** 239 240公开接口 241 242**变更原因** 243 244Search组件searchButton属性设置为undefined后,变更前获取searchButton属性值会取得上一次设置的值,此行为非预期行为,变更后改为获取到空值。 245 246**变更影响** 247 248此变更不涉及应用适配。 249 250| 变更前 | 变更后 | 251|------ |--------| 252|Search组件searchButton属性设置为undefined后,获取属性值为上一次设置的值,且会导致分隔线不消失。<br>|Search组件searchButton属性设置为undefined后,获取属性值为空,分隔线隐藏<br>| 253 254**起始API Level** 255 2567 257 258**变更发生版本** 259 260从OpenHarmony 5.1.0.46 版本开始。 261 262**变更的接口/组件** 263 264search.d.ts文件searchButton接口。 265 266**适配指导** 267 268默认行为变更,无需适配。