在 OpenHarmony(ArkUI) 里,没有 Android 那种“ListView.addHeader()”的概念,而是通过 List 组件 + 列表项组合 来实现“头部”。
下面按 ArkTS(推荐) 给你几种常见做法。
List() {
// 头部
ListItem() {
Column() {
Text('这是头部')
.fontSize(20)
.fontWeight(FontWeight.Bold)
Image($r('app.media.banner'))
.width('100%')
.height(150)
}
.padding(10)
}
// 数据列表
ForEach(this.dataList, (item) => {
ListItem() {
Text(item)
.fontSize(16)
.padding(10)
}
})
}
✅ 说明
ListItem 可以放任意组件ListItem如果希望 头部固定不动:
Column() {
// 固定头部
Text('固定头部')
.fontSize(20)
.width('100%')
.height(50)
.backgroundColor('#f0f0f0')
// 滚动列表
List() {
ForEach(this.dataList, (item) => {
ListItem() {
Text(item)
.padding(10)
}
})
}
.flexWeight(1)
}
✅ 适用场景
List() {
ListItem() {
Text('分组一')
.fontSize(18)
.fontWeight(FontWeight.Bold)
}
ForEach(this.group1, (item) => {
ListItem() {
Text(item)
}
})
ListItem() {
Text('分组二')
}
ForEach(this.group2, (item) => {
ListItem() {
Text(item)
}
})
}
某些 OpenHarmony 版本支持:
List() {
ListItemGroup() {
ListItem() {
Text('头部')
}
}
ForEach(this.dataList, (item) => {
ListItem() {
Text(item)
}
})
}
⚠️ 不是所有版本都稳定支持 ListHeader,推荐用方式一。
| 需求 | 推荐方式 |
|---|---|
| 普通头部 | List 内第一个 ListItem |
| 固定头部 | Column + List |
| 分组头 | ListItem 当 header |
| 复用头部 | 抽取成自定义组件 |
如果你用的是 JS UI(非 ArkTS) 或 OpenHarmony 3.x / 4.x 特定版本,告诉我版本号,我可以给你对应写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。