1# arkui子系统ChangeLog 2 3## cl.arkui.1 滚动事件上报滚动状态枚举值规则变更 4 5ScrollState枚举值在API version 9及以下上报规则: 6 7| 名称 | 描述 | 8| ------ | ------------------------------ | 9| Idle | 空闲状态。使用控制器提供的方法滚动、拖动滚动条滚动时触发。 | 10| Scroll | 手指拖动状态。使用手指拖动List滚动时触发。 | 11| Fling | 惯性滚动状态。快速划动松手后惯性滚动和划动到边缘回弹时触发。 | 12 13从API version 10开始,ScrollState上报规则变更为: 14 15| 名称 | 描述 | 16| ------ | ------------------------------ | 17| Idle | 空闲状态。滚动状态回归空闲的时候触发,一个滚动流程的最后一帧回调。控制器提供的无动画的方法控制的滚动也会触发。 | 18| Scroll | 滚动状态。手指拖动List滚动时触发,拖动滚动条滚动时触发,滚动鼠标滚轮触发。 | 19| Fling | 惯性滚动状态。由动画触发的滚动,包括快速划动松手后的惯性滚动,划动到边缘回弹的滚动,快速拖动内置滚动条松手后的惯性滚动,使用滚动控制器提供的带动画的方法控制的滚动。 | 20 21ScrollState枚举变更如下。 22 23| 场景 | API version 9及以下 |API version 10开始 | 24| ------ | ------------------------------ |------------------------------ | 25| 手指拖动滑动 | Scroll | Scroll | 26| 惯性滚动 | Fling | Fling | 27| 过界回弹 | Fling | Fling | 28| 鼠标滚轮滚动 | Idle | Scroll | 29| 拖动滚动条 | Idle | Scroll | 30| 滚动控制器滚动(带动画) | Idle | Fling | 31| 滚动控制器滚动(不带动画) | Idle | Idle | 32 33**变更影响** 34 351、ScrollState枚举值从API version 7开始提供,在API version 10变更,不影响API version 9及以下版本使用。<br/> 362、API version 9及以下使用到这个枚举值的接口有List组件的onScroll事件、onScrollFrameBegin事件、Scroll组件的onScrollFrameBegin事件,API version 9及以下滚动状态上报规则不变,不会产生影响;从API version 10开始,List组件的onScroll事件在文章起始列出的部分场景中上报的枚举值会有变化。 37 38**关键接口/组件变更** 39 40List组件接口文档: 41- [List组件事件](../../../application-dev/reference/arkui-ts/ts-container-list.md#事件) 42- [List组件ScrollState枚举说明](../../../application-dev/reference/arkui-ts/ts-container-list.md#scrollstate枚举说明) 43 44**适配指导** 45 46List组件绑定onScroll事件,通过onScroll事件上报当前滚动状态。API version 9及以下上报的滚动状态仍遵循变更前规则,从API version 10开始,上报的滚动状态遵循变更后规则。 47 48参考代码如下: 49```ts 50// xxx.ets 51@Entry 52@Component 53struct ListExample { 54 private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 55 56 build() { 57 Column() { 58 List({ space: 20, initialIndex: 0 }) { 59 ForEach(this.arr, (item) => { 60 ListItem() { 61 Text('' + item) 62 .width('100%').height(100).fontSize(16) 63 .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF) 64 } 65 }, item => item) 66 } 67 .listDirection(Axis.Vertical) // 排列方向 68 .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring 69 .onScroll((scrollOffset: number, scrollState: ScrollState) => { 70 console.log(`onScroll scrollState = ${ScrollState[scrollState]}, scrollOffset = ${[scrollOffset]}`) 71 }) 72 .width('90%') 73 } 74 .width('100%') 75 .height('100%') 76 .backgroundColor(0xDCDCDC) 77 .padding({ top: 5 }) 78 } 79} 80``` 81 82## cl.arkui.2 ArkUI系统组件使用场景限制 83 84对ArkUI系统组件的使用场景进行限制,仅允许在struct的build方法内, pageTransition方法内或@Builder修饰的函数内使用。 85 86**示例:** 87 88``` 89@Entry 90@Component 91struct Index { 92 build() { 93 Row() { 94 } 95 96 } 97} 98// ERROR:UI component 'Text' cannot be used in this place. 99Text('Hello World') 100``` 101 102**变更影响** 103 104 如果ArkUI系统组件不在struct的build方法内,pageTransition方法内,@Builder修饰的函数内使用,编译报错。 105 106**关键的接口/组件变更** 107 108不涉及。 109 110**适配指导** 111 112 ArkUI系统组件必须在struct的build方法内,pageTransition方法内,@Builder修饰的函数内使用。 113 114## cl.arkui.3 RowSplit/ColumnSplit组件布局与行为变更 115 1161、RowSplit/ColumnSplit交叉轴方向未设置大小时,由当前的适应父节点大小改为适应子节点大小。 1172、RowSplit/ColumnSplit分割线拖动后子节点行为变更,变更前拖动分割线时,子节点不压缩和拉伸,只进行平移; 118变更后拖动分割线时,子节点拉伸和压缩。 1193、使用clip属性对子组件内容超出组件区域进行裁剪时,RowSplit裁剪区域由子组件区域的右侧改为子组件区域的左右两侧, 120ColumnSplit裁剪区域由子组件区域的下侧改为子组件区域的上下两侧。 121 122**变更影响** 123以上3点变更只影响API version 10及以后版本,API version 9及以前RowSplit/ColumnSplit组件布局与行为仍遵循变更前规则。 124 125**关键接口/组件变更** 126 127不涉及 128 129## cl.arkui.4 Search组件/TextInput组件/TextArea组件布局与行为变更 130 1311、Search/TextInput/TextArea中textRect中位置变更前仅相对padding偏移,变更后位置相对padding和border计算偏移。 1322、Search中textfield宽度变更前为search宽度减去search icon的宽度和icon左右space宽度,变更后需要再减去padding和border的宽度; 133 134**变更影响** 135 136以上变更只影响API version 10及以后版本,API version 9及以前仍遵循变更前规则。 137 138**关键的接口/组件变更** 139 140不涉及 141 142**适配指导** 143 144不涉及 145