harmony 鸿蒙arkui子系统ChangeLog
arkui子系统ChangeLog
cl.arkui.1 滚动事件上报滚动状态枚举值规则变更
ScrollState枚举值在API version 9及以下上报规则:
名称 | 描述 |
---|---|
Idle | 空闲状态。使用控制器提供的方法滚动、拖动滚动条滚动时触发。 |
Scroll | 手指拖动状态。使用手指拖动List滚动时触发。 |
Fling | 惯性滚动状态。快速划动松手后惯性滚动和划动到边缘回弹时触发。 |
从API version 10开始,ScrollState上报规则变更为:
名称 | 描述 |
---|---|
Idle | 空闲状态。滚动状态回归空闲的时候触发,一个滚动流程的最后一帧回调。控制器提供的无动画的方法控制的滚动也会触发。 |
Scroll | 滚动状态。手指拖动List滚动时触发,拖动滚动条滚动时触发,滚动鼠标滚轮触发。 |
Fling | 惯性滚动状态。由动画触发的滚动,包括快速划动松手后的惯性滚动,划动到边缘回弹的滚动,快速拖动内置滚动条松手后的惯性滚动,使用滚动控制器提供的带动画的方法控制的滚动。 |
ScrollState枚举变更如下。
场景 | API version 9及以下 | API version 10开始 |
---|---|---|
手指拖动滑动 | Scroll | Scroll |
惯性滚动 | Fling | Fling |
过界回弹 | Fling | Fling |
鼠标滚轮滚动 | Idle | Scroll |
拖动滚动条 | Idle | Scroll |
滚动控制器滚动(带动画) | Idle | Fling |
滚动控制器滚动(不带动画) | Idle | Idle |
变更影响
1、ScrollState枚举值从API version 7开始提供,在API version 10变更,不影响API version 9及以下版本使用。
2、API version 9及以下使用到这个枚举值的接口有List组件的onScroll事件、onScrollFrameBegin事件、Scroll组件的onScrollFrameBegin事件,API version 9及以下滚动状态上报规则不变,不会产生影响;从API version 10开始,List组件的onScroll事件在文章起始列出的部分场景中上报的枚举值会有变化。
关键接口/组件变更
List组件接口文档: - List组件事件 - List组件ScrollState枚举说明
适配指导
List组件绑定onScroll事件,通过onScroll事件上报当前滚动状态。API version 9及以下上报的滚动状态仍遵循变更前规则,从API version 10开始,上报的滚动状态遵循变更后规则。
参考代码如下:
// xxx.ets
@Entry
@Component
struct ListExample {
private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
build() {
Column() {
List({ space: 20, initialIndex: 0 }) {
ForEach(this.arr, (item) => {
ListItem() {
Text('' + item)
.width('100%').height(100).fontSize(16)
.textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
}
}, item => item)
}
.listDirection(Axis.Vertical) // 排列方向
.edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
.onScroll((scrollOffset: number, scrollState: ScrollState) => {
console.log(`onScroll scrollState = ${ScrollState[scrollState]}, scrollOffset = ${[scrollOffset]}`)
})
.width('90%')
}
.width('100%')
.height('100%')
.backgroundColor(0xDCDCDC)
.padding({ top: 5 })
}
}
cl.arkui.2 ArkUI系统组件使用场景限制
对ArkUI系统组件的使用场景进行限制,仅允许在struct的build方法内, pageTransition方法内或@Builder修饰的函数内使用。
示例:
@Entry
@Component
struct Index {
build() {
Row() {
}
}
}
// ERROR:UI component 'Text' cannot be used in this place.
Text('Hello World')
变更影响
如果ArkUI系统组件不在struct的build方法内,pageTransition方法内,@Builder修饰的函数内使用,编译报错。
关键的接口/组件变更
不涉及。
适配指导
ArkUI系统组件必须在struct的build方法内,pageTransition方法内,@Builder修饰的函数内使用。
cl.arkui.3 RowSplit/ColumnSplit组件布局与行为变更
1、RowSplit/ColumnSplit交叉轴方向未设置大小时,由当前的适应父节点大小改为适应子节点大小。
2、RowSplit/ColumnSplit分割线拖动后子节点行为变更,变更前拖动分割线时,子节点不压缩和拉伸,只进行平移;
变更后拖动分割线时,子节点拉伸和压缩。
3、使用clip属性对子组件内容超出组件区域进行裁剪时,RowSplit裁剪区域由子组件区域的右侧改为子组件区域的左右两侧,
ColumnSplit裁剪区域由子组件区域的下侧改为子组件区域的上下两侧。
变更影响
以上3点变更只影响API version 10及以后版本,API version 9及以前RowSplit/ColumnSplit组件布局与行为仍遵循变更前规则。
关键接口/组件变更
不涉及
cl.arkui.4 Search组件/TextInput组件/TextArea组件布局与行为变更
1、Search/TextInput/TextArea中textRect中位置变更前仅相对padding偏移,变更后位置相对padding和border计算偏移。
2、Search中textfield宽度变更前为search宽度减去search icon的宽度和icon左右space宽度,变更后需要再减去padding和border的宽度;
变更影响
以上变更只影响API version 10及以后版本,API version 9及以前仍遵循变更前规则。
关键的接口/组件变更
不涉及
适配指导
不涉及
你可能感兴趣的鸿蒙文章
harmony 鸿蒙输入法框架子系统-输入法框架ChangeLog
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦