前言
前面一篇文章中,已经说了基础组件。那么接下来就是容器组件中的List组件
概述
List是很常用的滚动类容器组件,包含有一系列相同宽度的列表项,List组件和子组件ListItem一起使用,List列表中的每一个列表项对应一个ListItem组件。
语法
List(value?: {space?:number|string,initialIndex?:number,scroller?:Scroller})
属性
设置List排列方向
- 语法
listDirection
List().listDirection(Axis.Vertical)
-
说明
设置List 组件排列方向,默认时按照 垂直方向排列 -
参数
设置列表分割线
- 语法
divider
List().divider(value: {
strokeWidth: Length;
color?: ResourceColor;
startMargin?: Length;
endMargin?: Length;
}
-
说明
List组件子组件ListItem之间默认是没有分割线的,部分场景子组件ListItem间需要设置分割线 -
参数
List列表滚动事件监听
List组件提供了一系列事件方法用来监听列表的滚动,您可以根据需要,监听这些事件来做一些操作:
- onScroll:列表滑动时触发,返回值scrollOffset为滑动偏移量,scrollState为当前滑动状态。
- onScrollIndex:列表滑动时触发,返回值分别为滑动起始位置索引值与滑动结束位置索引值。
- onReachStart:列表到达起始位置时触发。
- onReachEnd:列表到底末尾位置时触发。
- onScrollStop:列表滑动停止时触发。
List({ space: 10 }) {
ForEach(this.arr, (item) => {
ListItem() {
Text(`${item}`)
...
}
}, item => item)
}
.onScrollIndex((firstIndex: number, lastIndex: number) => {
console.info('first' + firstIndex)
console.info('last' + lastIndex)
})
.onScroll((scrollOffset: number, scrollState: ScrollState) => {
console.info('scrollOffset' + scrollOffset)
console.info('scrollState' + scrollState)
})
.onReachStart(() => {
console.info('onReachStart')
})
.onReachEnd(() => {
console.info('onReachEnd')
})
.onScrollStop(() => {
console.info('onScrollStop')
})