在 OpenHarmony(ArkUI) 中,列表组件主要使用 List + ListItem,配合不同的 布局方式 来实现。下面按常见场景给你讲清楚。
最基础的列表形式:
List() {
ListItem() {
Text('Item 1')
}
ListItem() {
Text('Item 2')
}
ListItem() {
Text('Item 3')
}
}
✅ 默认就是 纵向滚动列表
通过 listDirection 设置:
List({ space: 10 })
.listDirection(Axis.Horizontal)
.height(100)
{
ListItem() {
Text('A').width(80)
}
ListItem() {
Text('B').width(80)
}
ListItem() {
Text('C').width(80)
}
}
ListItem 里一般用 布局容器 来排内容:
ListItem() {
Row() {
Image($r('app.media.icon'))
.width(40)
.height(40)
Text('标题')
.margin({ left: 10 })
}
.width('100%')
.padding(10)
}
Row() {
Image(...)
Column() {
Text('标题')
Text('描述').fontSize(12)
}
.layoutWeight(1)
.margin({ left: 10 })
Text('>')
}
.width('100%')
.padding(10)
List({ space: 12 }) {
// ListItem
}
或:
ListItem()
.height(60)
如果不是“滚动列表”,而是网格,用 Grid:
Grid() {
ForEach([1,2,3,4,5,6], (item) => {
GridItem() {
Text(item.toString())
}
})
}
.columnsTemplate('1fr 1fr 1fr')
List() {
ForEach(this.dataList, (item) => {
ListItem() {
Text(item)
.padding(10)
}
})
}
| 需求 | 推荐 |
|---|---|
| 聊天列表 | List + Row |
| 设置页 | List + Column |
| 商品列表 | List + Row + Image |
| 横向 banner | List(Horizontal) |
| 九宫格 | Grid |
OpenHarmony 列表 = List 控制方向,ListItem 控制内容,Row/Column 控制布局
如果你有具体场景(比如:设置页 / 聊天列表 / 商品列表 / 卡片式布局),我可以直接给你完整代码示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。