admin管理员组文章数量:1037775
HarmonyOS NEXT 实战系列03
这个案例当中涉及到知识内容:
1. 对象类型使用 Interface 约束
2. 华为内容的资源类型 Resource
3. 定义数组类型的数据 FansItem[]
4. 使用 ForEach 完成循环渲染
5. 使用 @Extend 扩展组件属性方法
具体代码如下:
代码语言:txt复制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 })
}
这个界面不涉及到动态交互,下一篇我们将会涉及到
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:
HarmonyOS NEXT 实战系列03
这个案例当中涉及到知识内容:
1. 对象类型使用 Interface 约束
2. 华为内容的资源类型 Resource
3. 定义数组类型的数据 FansItem[]
4. 使用 ForEach 完成循环渲染
5. 使用 @Extend 扩展组件属性方法
具体代码如下:
代码语言:txt复制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 })
}
这个界面不涉及到动态交互,下一篇我们将会涉及到
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:
本文标签: HarmonyOS NEXT 实战系列03
版权声明:本文标题:HarmonyOS NEXT 实战系列03 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748255480a2275983.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论