HarmonyOS鸿蒙Next中list组件
HarmonyOS鸿蒙Next中list组件 一、List组件及其使用
List是很常用的滚动类容器组件,一般和子组件ListItem一起使用,List列表中的每一个列表项对应一个ListItem组件。List组件通常需要搭配如ForEach组件对ListItem组件进行循环渲染。List组件里面的列表项默认是按垂直方向排列的,如果您想让列表沿水平方向排列,您可以将List组件的listDirection属性设置为Axis.Horizontal。常见的用法和效果如下所示:
List默认列表项布局为垂直方向,效果如下图所示:
List的列表项水平方向布局,效果如下截图所示:
.listDirection(Axis.Horizontal)
设置列表分割线,关键代码及效果如下图所示:
List组件子组件ListItem之间默认是没有分割线的,部分场景子组件ListItem间需要设置分割线,这时候您可以使用List组件的divider属性。divider属性包含四个参数:
关键代码:
.divider({strokeWidth:5,color:Color.Red,startMargin:10,endMargin:10})
List滚动事件监听:
List组件提供了一系列事件方法用来监听列表的滚动,您可以根据需要,监听这些事件来做一些操作:
.onScroll:列表滑动时触发,返回值scrollOffset为滑动偏移量,scrollState为当前滑动状态。
.onScrollIndex:列表滑动时触发,返回值分别为滑动起始位置索引值与滑动结束位置索引值。
.onReachStart:列表到达起始位置时触发。
.onReachEnd:列表到底末尾位置时触发。
.onScrollStop:列表滑动停止时触发。
二、示例代码如下
新建ListComponentPage.ets,添加如下代码:
@Entry
@Component
struct ListComponentPage {
private arr: number[] = [0,1,2,3,4,5,6,7,8,9]
build() {
Column() {
List({space: 10}){
ForEach(this.arr,(item:number)=> {
ListItem(){
Text(`${item}`)
.width('100%')
.height(100)
.fontSize(20)
.fontColor(Color.White)
.textAlign(TextAlign.Center)
.borderRadius(10)
.backgroundColor(0x007DFF)
}
})
}
// 分割线
.divider({strokeWidth:5,color:Color.Red,startMargin:10,endMargin:10})
// 设置成水平方向
// .listDirection(Axis.Horizontal)
// 滑动事件
.onScrollIndex((firstIndex: number, lastIndex: number) => {
console.info('滑动起始位置索引值' + firstIndex)
console.info('滑动结束位置索引值' + lastIndex)
})
.onDidScroll((scrollOffset: number, scrollState: ScrollState) => {
console.info('滑动偏移量' + scrollOffset)
console.info('当前滑动状态' + scrollState)
})
.onReachStart(() => {
console.info('列表起始位置到达')
})
.onReachEnd(() => {
console.info('列表末尾位置到达')
})
.onScrollStop(() => {
console.info('列表滑动停止')
})
}
.padding(12)
.height('100%')
.backgroundColor(0xF1F3F5)
}
}
更多关于HarmonyOS鸿蒙Next中list组件的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,List
组件用于展示一组数据项,通常以垂直列表的形式呈现。List
组件支持滚动、分页、懒加载等功能,适用于大量数据的展示场景。
List
组件的主要特性包括:
- 数据绑定:通过
ForEach
或LazyForEach
进行数据绑定,支持动态更新列表项。 - 布局控制:支持自定义列表项的布局,包括高度、间距等属性。
- 事件处理:支持点击、长按等事件处理,用户可以与列表项进行交互。
- 性能优化:通过懒加载机制优化性能,仅渲染当前可见的列表项。
- 样式定制:支持自定义列表项的外观样式,包括背景色、字体、图标等。
示例代码:
@Entry
@Component
struct ListExample {
private data: string[] = ['Item 1', 'Item 2', 'Item 3', 'Item 4']
build() {
List({ space: 10 }) {
ForEach(this.data, (item: string) => {
ListItem() {
Text(item)
.fontSize(20)
.margin({ left: 10 })
}
})
}
.width('100%')
.height('100%')
}
}
在这个示例中,List
组件展示了一个包含四个字符串的列表,每个列表项通过Text
组件显示文本内容。
更多关于HarmonyOS鸿蒙Next中list组件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,List
组件用于展示一组垂直排列的列表项,支持滚动查看。通过ListItem
子组件定义每个列表项的内容和样式,开发者可以自定义列表的布局、交互和数据绑定。List
组件还支持多种布局模式,如线性布局、网格布局等,并提供丰富的API用于处理列表项的点击、长按等事件,以及动态更新列表数据。