OpenHarmony开发者论坛
标题:
列表页构建(文字加图标)
[打印本页]
作者:
深开鸿-唐艺丹
时间:
5 天前
标题:
列表页构建(文字加图标)
### **列表页构建(文字加图标)**
`List`组件实现效果如下图所示:
![wps1.jpg](https://forums-obs.openharmony.cn/forum/202410/31/152156dwu0wvevmgvov5za.jpg "wps1.jpg")
---
### 具体步骤
首先构建整个 `List`中的每一条 `Listitem`,我们的计划是 `List`中的每一条 `Listitem`由文字 `Text`和图标 `Image`组成,其中文字 `Text`由一个标题+一个日期组成。
因为文字 `Text`由一个标题+一个日期组成,所以也要填充 `Text`文本所需要的内容,这里是构建了一个标题+一个日期,通过构造 `class`来定义标题和日期这两个属性。
```
export default class New {
title: string
time: string
constructor(title: string, time: string) {
this.title = title
this.time = time
}
}
```
通过名为 `list`的数组属性来导入所需的文本,该数组用于存储 `New`类型的元素。
```
export default struct NewList {
@State list:Array<New>=new Array
aboutToAppear(){
this.list.push(new New("这是标题1","07/12"))
this.list.push(new New("这是标题2","07/19"))
this.list.push(new New("这是标题3","07/20"))
this.list.push(new New("这是标题4","07/21"))
this.list.push(new New("这是标题5","07/22"))
this.list.push(new New("这是标题6","07/23"))
}
```
最后构建整体,用`ForEach`来实现对每一条的构建。
```
build() {
Column() {
List() {
ForEach(this.list, (item: New) => {
ListItem() {
Row() {
Column() {
Text(item.title)
.fontSize(21)
.textAlign(TextAlign.Start)
Text(" 日期:" + item.time)
.fontSize(12)
}
.width('80%')
Image($r('app.media.startIcon'))
.width(40)
.height(40)
.margin(10)
}
.height(60)
}
})
}
}
.width('100%')
.height('100%')
}
```
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5