1# Arkui子系统变更说明 2## cl.Arkui.1 QRCode组件的默认颜色、默认背景颜色和默认尺寸变更 3 4**访问级别** 5 6公开接口 7 8**变更原因** 9 10当前QRCode组件的默认颜色和默认尺寸不符合UX规范,因此依照UX规范做出变更。 11 12**变更影响** 13 14该变更为兼容性变更,改变了组件默认情况下的显示颜色和尺寸,提升了组件的默认显示效果。 15 16**API Level** 17 187 19 20**变更的接口/组件** 21 22API 11前,二维码默认颜色是Color.Black,默认背景颜色是Color.White,组件默认宽高是父组件大小。 23 24 25 26API 11及以后,二维码默认颜色是系统资源中的`ohos_id_color_foreground`,默认背景颜色是系统资源中的`ohos_id_color_background`,组件默认宽度和高度都是240vp。 27 28 29 30**适配指导** 31 32请查阅[QRCode组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-qrcode.md)文档进行适配。 33 34示例代码: 35```ts 36// xxx.ets 37@Entry 38@Component 39struct QRCodeExample { 40 private value: string = 'hello world' 41 build() { 42 Column() { 43 QRCode(this.value) 44 }.width('100%').height('100%') 45 } 46} 47``` 48## cl.arkui.2 Refresh变更 49 50**访问级别** 51 52公开接口 53 54**变更原因** 55 56UX增强导致的规格变更。 57 58**变更影响** 59 601、默认刷新场景 61 62API 11以前,Refresh组件嵌套子组件,默认场景,刷新组件下拉,子组件不跟随下移。滑动组件的边缘回弹效果和loading的移动是相互独立的。 63 64 65 66API 11及以后,Refresh组件嵌套子组件,刷新组件下拉,子组件下移。 67 68 69 702、使用builder接口自定义刷新组件 71 72API 11以前,Refresh组件嵌套子组件,自定义刷新组件,刷新组件的高度不大于64vp。滑动组件的边缘回弹效果和builder下拉同时生效。 73 74 75 76API 11及以后,Refresh组件嵌套子组件,刷新组件下拉,子组件下移。自定义刷新组件builder的高度没有限制。 77 78 79 803、friction接口变更 81 82API 11以前,Refresh下拉使用固定跟手系数,跟手系数可以通过friction接口设置。 83API 11及以后,Refresh下拉使用动态跟手系数,下拉距离越大,跟手系数越小。通过friction设置的跟手系数不生效。 84 854、offset接口变更 86 87API 11以前,Refresh组件可以使用offset接口设置loadingProgress开始显示时的下拉距离。 88API 11以后,Refresh组件下拉16vp后开始显示loadingProgress图标,offset接口设置不生效。 89 90**API Level** 91 928 93 94**变更发生版本** 95 96从OpenHarmony SDK 4.1.2.2 开始。 97 98**变更的接口/组件** 99 100Refresh 101 102**适配指导** 103 1041、默认刷新场景 105 106请查阅[Refresh组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-refresh.md)文档进行适配 107 108示例代码: 109 110```ts 111@Entry 112@Component 113struct RefreshExample { 114 @State isRefreshing: boolean = false 115 @State arr: String[] = ['0', '1', '2', '3', '4','5','6','7','8','9','10'] 116 117 build() { 118 Column() { 119 Refresh({ refreshing: $$this.isRefreshing}) { 120 List() { 121 ForEach(this.arr, (item: string) => { 122 ListItem() { 123 Text('' + item) 124 .width('100%').height(100).fontSize(16) 125 .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) 126 } 127 }, (item: string) => item) 128 } 129 .onScrollIndex((first: number) => { 130 console.info(first.toString()) 131 }) 132 .width('100%') 133 .height('100%') 134 .divider({strokeWidth:1,color:Color.Yellow,startMargin:10,endMargin:10}) 135 .scrollBar(BarState.Off) 136 .backgroundColor(Color.Yellow) 137 } 138 .onStateChange((refreshStatus: RefreshStatus) => { 139 console.info('Refresh onStatueChange state is ' + refreshStatus) 140 }) 141 .onRefreshing(() => { 142 setTimeout(() => { 143 this.isRefreshing = false 144 }, 2000) 145 console.log('onRefreshing test') 146 }) 147 .backgroundColor(0x89CFF0) 148 } 149 } 150} 151``` 152 1532、使用builder接口自定义刷新组件 154 155请查阅[Refresh组件](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-refresh.md)文档进行适配 156 157示例代码: 158 159```ts 160// xxx.ets 161@Entry 162@Component 163struct RefreshExample { 164 @State isRefreshing: boolean = false 165 @State arr: String[] = ['0', '1', '2', '3', '4','5','6','7','8','9','10'] 166 @Builder 167 customRefreshComponent() 168 { 169 Stack() 170 { 171 Row() 172 { 173 LoadingProgress().height(32) 174 Text("正在刷新...").fontSize(16).margin({left:20}) 175 } 176 .alignItems(VerticalAlign.Center) 177 }.width("100%").align(Alignment.Center) 178 } 179 180 build() { 181 Column() { 182 Refresh({ refreshing: $$this.isRefreshing,builder:this.customRefreshComponent()}) { 183 List() { 184 ForEach(this.arr, (item: string) => { 185 ListItem() { 186 Text('' + item) 187 .width('100%').height(100).fontSize(16) 188 .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) 189 } 190 }, (item: string) => item) 191 } 192 .onScrollIndex((first: number) => { 193 console.info(first.toString()) 194 }) 195 .width('100%') 196 .height('100%') 197 .divider({strokeWidth:1,color:Color.Yellow,startMargin:10,endMargin:10}) 198 .scrollBar(BarState.Off) 199 .backgroundColor(Color.Yellow) 200 } 201 .onStateChange((refreshStatus: RefreshStatus) => { 202 console.info('Refresh onStatueChange state is ' + refreshStatus) 203 }) 204 .onRefreshing(() => { 205 setTimeout(() => { 206 this.isRefreshing = false 207 }, 2000) 208 console.log('onRefreshing test') 209 }) 210 .backgroundColor(0x89CFF0) 211 } 212 } 213} 214``` 215 2163、friction和offset接口变更 217 218API 11及以后,friction和offset设置不生效,按系统默认UX效果实现,无需适配。