HarmonyOS NEXT 实战系列03-案例粉丝列表
【摘要】 这个案例当中涉及到知识内容:对象类型使用 Interface 约束华为内容的资源类型 Resource定义数组类型的数据 FansItem[]使用 ForEach 完成循环渲染使用 @Extend 扩展组件属性方法具体代码如下:interface FansItem { avatar: Resource name: string title: string isFollow: bool...
这个案例当中涉及到知识内容:
-
对象类型使用 Interface 约束
-
华为内容的资源类型 Resource
-
定义数组类型的数据 FansItem[]
-
使用 ForEach 完成循环渲染
-
使用 @Extend 扩展组件属性方法
具体代码如下:
interface FansItem {
avatar: Resource
name: string
title: string
isFollow: boolean
}
@Entry
@Component
struct TestPage {
playerList: FansItem[] = [
{
name: '华为终端',
avatar: $r('app.media.flower'),
title: '2024,二百万粉阿华继续冲压!!!',
isFollow: false
},
{
name: '黑马程序员',
avatar: $r('app.media.flower'),
title: '领取课程源码+资料,关注黑马程序员公众,回复:领取资源02',
isFollow: true
},
{
name: '央视新闻',
avatar: $r('app.media.flower'),
title: '中央广播电视总台央视新闻官方账号',
isFollow: false
},
]
build() {
List() {
ForEach(this.playerList, (item: FansItem) => {
ListItem() {
Row({ space: 15 }) {
Image($r('app.media.flower'))
.width(48)
.aspectRatio(1)
.borderRadius(24)
Column() {
Text(item.name)
Text(item.title)
.fontColor('#999999')
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
}
.layoutWeight(1)
.alignItems(HorizontalAlign.Start)
if (item.isFollow) {
Button('已关注')
.customButton()
.backgroundColor('#acacac')
} else {
Button('回关')
.customButton()
.backgroundColor('#ffaa00')
}
}
.width('100%')
.height(80)
}
})
}
.padding(15)
.width('100%')
.height('100%')
.margin({ top: 50 })
}
}
@Extend(Button)
function customButton() {
.fontSize(12)
.padding(0)
.size({ width: 60, height: 30 })
}
这个界面不涉及到动态交互,下一篇我们将会涉及到
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)