HarmonyOS NEXT 实战系列03-案例粉丝列表

简介: 本文通过一个案例展示了使用 Interface 定义对象类型约束、华为资源类型 Resource、数组类型 FansItem[] 的定义,以及通过 ForEach 实现循环渲染和 @Extend 扩展组件属性的方法。代码实现了一个列表界面,包含头像、名称、标题和关注按钮,按钮样式根据是否已关注动态变化。此示例未涉及动态交互,后续文章将补充相关内容。

image.png

这个案例当中涉及到知识内容:

  1. 对象类型使用 Interface 约束

  2. 华为内容的资源类型 Resource

  3. 定义数组类型的数据 FansItem[]

  4. 使用 ForEach 完成循环渲染

  5. 使用 @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 })
}

这个界面不涉及到动态交互,下一篇我们将会涉及到
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/zsgzsgzsgzsgzsg/article/details/146183315

相关文章
|
1月前
|
程序员
HarmonyOS NEXT 实战系列05-案例回关粉丝
本文介绍了一个基于HarmonyOS的组件化设计案例,通过提取 `FansItemComp` 组件实现复用,使用 `@Prop` 动态接收数据渲染UI。示例中包含关注与互关功能:父组件 `TestPage` 提供粉丝列表数据,封装 `getFansAndFollowCount` 方法统计互关人数;子组件通过按钮交互更新关注状态,并利用 `onChange` 回调通知父组件同步数据变化。代码结构清晰,展示了组件间通信及动态渲染的实现方式。
|
1月前
HarmonyOS NEXT 实战系列08-案例微博导航设置
本示例展示了如何通过 `PersistentStorage` 和 `AppStorage` 实现全局 UI 状态的持久化,并结合 `Tabs` 组件创建动态切换的首页导航栏。用户可在“视频”与“超话”间切换,状态自动保存。同时,通过 `router` 跳转至导航设置页 (`NavSetting.ets`) 完成选项修改,支持返回操作及对齐布局调整。代码涵盖基础组件用法,适合学习跨页面状态管理与 UI 设计。
HarmonyOS实战—实现抖音点赞和取消点赞效果
HarmonyOS实战—实现抖音点赞和取消点赞效果
407 0
HarmonyOS实战—实现抖音点赞和取消点赞效果
HarmonyOS(鸿蒙)——模仿抖音点赞和取消点赞
HarmonyOS(鸿蒙)——模仿抖音点赞和取消点赞
416 0
HarmonyOS(鸿蒙)——模仿抖音点赞和取消点赞
|
缓存 自然语言处理 JavaScript
HarmonyOS实战—服务卡片初体验
最近看到很多博客网站上出现了HarmonyOS的征文活动,看到那些精美的奖品让我也安耐不住开了,当然奖品的诱惑当然是抵挡不住我对技术的狂热追求,对于开发者而言技术没有顶峰没有终点。那么今天给大家做一个卡片服务开发的经验分享,如果有什么地方说的不对的请各位开发者进行指正,如果有什么问题也可以发私信或者直接在帖子中留言,我也会及时回复大家。
|
JavaScript Android开发 开发者
【干货】HarmonyOS,鸿蒙系统手把手教学,创建第一个程序
【干货】HarmonyOS,鸿蒙系统手把手教学,创建第一个程序
【干货】HarmonyOS,鸿蒙系统手把手教学,创建第一个程序
|
文字识别 安全 JavaScript
713页鸿蒙巨作!《鸿蒙HarmonyOS手机应用开发实战》简介
《鸿蒙HarmonyOS手机应用开发实战》一书由清华大学出版社出版,已经于2022年1月上市。拿到了样书,第一时间希望与读者朋友们分享下这本书里面的内容。
417 0
|
4月前
|
编解码 API 数据安全/隐私保护
自学HarmonyOS Next记录:实现相册访问功能
最近我决定开发一个鸿蒙App,旨在提供更好的照片管理体验。通过使用PhotoAccessHelper API,我实现了访问、显示和管理设备相册中的照片。过程中遇到了权限不足的问题,通过在config.json中添加权限声明并编写权限检查代码得以解决。此外,我还实现了分页加载和展示照片详细信息等功能,提升了用户体验。这次开发不仅让我掌握了API的使用,也深刻体会到鸿蒙系统对用户隐私和数据安全的重视。 总结这次开发,我不仅学到了技术知识,还明白了开发者保护用户数据安全的责任。未来将继续探索更多功能,欢迎关注和收藏!
367 70
自学HarmonyOS Next记录:实现相册访问功能
|
11月前
|
存储 Java 数据管理
HarmonyOS实战—HarmonyOS入门第一课
HarmonyOS实战—HarmonyOS入门第一课
173 0
HarmonyOS实战—HarmonyOS入门第一课