在 OpenHarmony(ArkUI) 中,“列表组件”通常指 List + ListItem(声明式开发,ArkTS),这是最常用的列表实现方式。下面从基础用法 → 常用属性 → 示例 → 常见场景给你讲清楚。
@Entry
@Component
struct ListExample {
build() {
List() {
ListItem() {
Text('Item 1')
}
ListItem() {
Text('Item 2')
}
ListItem() {
Text('Item 3')
}
}
}
}
✅ List:列表容器
✅ ListItem:列表中的每一项
@Entry
@Component
struct ListExample {
private data: string[] = ['苹果', '香蕉', '橙子']
build() {
List() {
ForEach(this.data, (item: string) => {
ListItem() {
Text(item)
.fontSize(20)
.padding(10)
}
})
}
}
}
List() {
// ListItem...
}
.listDirection(Axis.Horizontal) // 横向列表
默认是 纵向(Axis.Vertical)
List() {
// ListItem...
}
.divider({
strokeWidth: 1,
color: '#EEEEEE',
startMargin: 10,
endMargin: 10
})
List() {
// ListItem...
}
.scrollBar(BarState.Auto)
.edgeEffect(EdgeEffect.Spring)
ListItem() {
Text('内容')
}
.onClick(() => {
console.log('点击了')
})
ListItem() {
Row() {
Image($r('app.media.icon'))
.width(30)
.height(30)
Text('设置')
.margin({ left: 10 })
}
.padding(10)
}
ListItem() {
Text(item)
}
.onClick(() => {
// router.pushUrl(...)
})
OpenHarmony 推荐
LazyForEach用于大数据列表
List() {
LazyForEach(this.dataSource, (item: string) => {
ListItem() {
Text(item)
}
})
}
(需要配合 IDataSource 使用,适合几百条以上数据)
| 组件 | 用途 |
|---|---|
| List | 结构化列表(ListItem) |
| Scroll | 任意内容滚动 |
| Grid | 网格列表 |
✅ 列表 = List + ListItem
✅ 数据列表用 ForEach / LazyForEach
✅ 支持横竖、分割线、点击事件
✅ 长列表用懒加载
如果你愿意,我可以:
你现在是 OpenHarmony 几? ArkTS 还是 JS?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。