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 })
AI 代码解读

}
}

@Extend(Button)
function customButton() {
.fontSize(12)
.padding(0)
.size({ width: 60, height: 30 })
}

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

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

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

目录
打赏
0
4
4
0
28
分享
相关文章
HarmonyOS NEXT 实战系列10-网络通信
本文介绍了网络通信相关知识,包括HTTP协议的工作原理、鸿蒙系统中HTTP模块的使用方法、Promise异步操作处理机制及async/await语法糖的应用,以及JSON数据格式的语法规则与转换方法。重点讲解了HTTP请求响应流程、鸿蒙开发中的网络权限申请与代码实现、Promise三种状态及创建方式,并通过示例说明异步编程技巧和JSON在数据传递中的应用。
35 10
HarmonyOS Next~HarmonyOS应用开发工具:DevEco Testing
HarmonyOS应用开发工具DevEco Testing,作为保障应用质量的关键利器,支持多维度测试(单元、UI、性能等)与智能化优化。其分布式测试框架、性能基线管理和智能用例推荐等功能,覆盖应用全生命周期。通过自动化测试策略、持续集成和性能调优,助力开发者高效构建高质量HarmonyOS应用,推动生态发展。
19 2
HarmonyOS Next~HarmonyOS应用开发工具之AppGallery Connect
AppGallery Connect(AGC)是华为为HarmonyOS开发者提供的全生命周期服务平台,支持开发、测试、上架到运营全流程。其核心功能包括应用分发、云数据库、认证服务和云函数等,助力开发者提升效率、缩短开发周期。AGC采用分层架构设计,集成40+云端服务能力,覆盖170+国家/地区,支持全球化业务拓展。通过事件跟踪、异常监控等工具,帮助开发者优化性能与用户体验。未来,AGC将引入低代码开发、增强现实等新能力,助力构建高质量HarmonyOS应用。
15 4
|
5天前
|
HarmonyOS NEXT 实战系列-综合案例新闻页
本示例展示了如何通过 `ForEach` 遍历数据并结合 HTTP 请求动态渲染新闻列表。首先定义了 `News` 接口描述数据结构,接着在组件中使用 `List` 和 `ForEach` 渲染新闻项,包含标题、来源、评论数、时间和图片等信息。同时,通过 `http.createHttp()` 获取远程数据并更新列表。代码结构清晰,适配动态数据展示需求。
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
21 2
HarmonyOS ArkTS声明式UI开发实战教程
本文深入探讨了ArkTS作为HarmonyOS生态中新一代声明式UI开发框架的优势与应用。首先对比了声明式与命令式开发的区别,展示了ArkTS如何通过直观高效的代码提升可维护性。接着分析了其核心三要素:数据驱动、组件化和状态管理,并通过具体案例解析布局体系、交互组件开发技巧及复杂状态管理方案。最后,通过构建完整TODO应用实战,结合调试优化指南,帮助开发者掌握声明式UI设计精髓,感受ArkTS的独特魅力。文章鼓励读者通过“破坏性实验”建立声明式编程思维,共同推动HarmonyOS生态发展。
38 3
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
99 61
|
21小时前
|
鸿蒙开发:了解分割线
在实际的开发中,如果自带的分割线能够满足我们的需求,以自身的分割线属性为主,如果不满足,我们可以使用组件进行绘制。
31 16
鸿蒙开发:了解分割线
鸿蒙开发:ArkTs语言注释
关于注释,有一点需要注意,那就是,注释,不会被编译器或解释器执行,而本小节的重点并不是简单的教大家注释如何去写,而是在实际的项目中,我们能够真正的把注释投入到实际的开发中。
54 18
鸿蒙开发:ArkTs语言注释
|
3天前
|
鸿蒙开发:远场通信服务rcp会话问题
总体来说,问题倒不是很大,解决起来也不是很麻烦,所以啊,老铁们,在实际的开发中,对于一些官方文档,还是建议多看,这样可以提前避免后续的不必要麻烦。
鸿蒙开发:远场通信服务rcp会话问题