【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(三):实现一个音乐列表的页面

鸿蒙里面,实现一个音乐播放的列表,模拟数组的数据展示

实现效果

在这里插入图片描述

代码实现

  • 准备数据
songs:SongItemTypes[] = [{img:'https://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/0.jpg',name:'直到世界的尽头',author:'WANDS'},{img:'https://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/1.jpg',name:'画',author:'赵磊'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/2.jpg',name:'Sweet Dreams',author:'TPaul sax / Eurythmics'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/3.jpg',name:'奢香夫人',author:'凤凰传奇'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/4.jpg',name:'空心',author:'光泽'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/5.jpg',name:'反转地球',author:'潘玮柏'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/6.jpg',name:'No.9',author:'T-ara'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/7.jpg',name:'孤独',author:'G.E.M.邓紫棋'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/8.jpg',name:'Lose Control',author:'Hedley'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/9.jpg',name:'倩女幽魂',author:'张国荣'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/10.jpg',name:'反转地球',author:'潘玮柏'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/11.jpg',name:'苦笑',author:'汪苏泷'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/12.jpg',name:'一生所爱',author:'卢冠廷 / 莫文蔚'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/13.jpg',name:'月半小夜曲',author:'李克勤'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/14.jpg',name:'Rolling in the peep',author:'Adele'},{img:'http://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/1.jpg',name:'Beyond',author:'海阔天空'}]
  • 标题的实现
Text("猜你喜欢").fontColor('#fff').width('100%').margin({bottom:10})
  • 列表的实现
List(){ForEach(this.songs,(item:SongItemTypes,index:number) => {ListItem(){Row(){Stack(){Image(item.img).width(80).border({radius:8}).margin({right:10})if(this.currentIndex == index){Image($r('app.media.wave')).width(40)}}.alignContent(Alignment.Bottom)Column(){Text(item.name).fontColor(Color.White).width('100%')Row(){Text("Vip").fontColor(Color.White).padding({top:2,right:5,bottom:2,left:5}).fontColor(Color.Grey).margin({right:10}).border({width:1,radius:8,color:Color.Grey})Text(item.author).fontColor(Color.White).fontColor(Color.Grey)}.width('100%').margin({top:20})}.layoutWeight(1)Image($r('app.media.more')).width(24).fillColor('#fff')}.width('100%').height(80).onClick(() => {this.currentIndex = index})}.margin({bottom:10})
})
}.scrollBar(BarState.Off)
  • 点击当前项的时候,出现音量闪烁的图片
if(this.currentIndex == index){Image($r('app.media.wave')).width(40)
}

完整代码

import {SongItemTypes} from '../types'@Entry
@Component
struct  FourthPage {@State currentIndex:number = -1build() {Column(){Text("猜你喜欢").fontColor('#fff').width('100%').margin({bottom:10})List(){ForEach(this.songs,(item:SongItemTypes,index:number) => {ListItem(){Row(){Stack(){Image(item.img).width(80).border({radius:8}).margin({right:10})if(this.currentIndex == index){Image($r('app.media.wave')).width(40)}}.alignContent(Alignment.Bottom)Column(){Text(item.name).fontColor(Color.White).width('100%')Row(){Text("Vip").fontColor(Color.White).padding({top:2,right:5,bottom:2,left:5}).fontColor(Color.Grey).margin({right:10}).border({width:1,radius:8,color:Color.Grey})Text(item.author).fontColor(Color.White).fontColor(Color.Grey)}.width('100%').margin({top:20})}.layoutWeight(1)Image($r('app.media.more')).width(24).fillColor('#fff')}.width('100%').height(80).onClick(() => {this.currentIndex = index})}.margin({bottom:10})})}.scrollBar(BarState.Off)}.backgroundColor("#000").width('100%').height('100%').padding({left:10,right:10}).expandSafeArea([SafeAreaType.SYSTEM],[SafeAreaEdge.TOP,SafeAreaEdge.BOTTOM])}
}

在这里插入图片描述
这样就实现了一个模拟的音乐列表页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/pingmian/89058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年渗透测试面试题总结-2025年HW(护网面试) 47(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 2025年HW(护网面试) 47 1. UDF提权 2. 命令执行与代码执行的区别 3. 文件包含利用姿势 4. 漏洞复现流程 …

iPhone 数据擦除软件评测(最新且全面)

当您准备出售、捐赠或回收 iPhone 时,仅仅恢复出厂设置并不足以保证您的个人数据彻底消失。专业的 iPhone 数据擦除软件采用先进的技术,确保您的敏感信息永久无法恢复。本文回顾了十种流行的 iPhone 数据擦除工具,详细介绍了它们的功能、优点…

Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)

在Qt中,触摸事件(QTouchEvent)和鼠标事件(QMouseEvent)是两种不同的输入事件类型。通常情况下,触摸事件不会自动转换为鼠标事件,因为它们代表的是不同的输入设备(触摸屏 vs 鼠标&…

Blender 云渲染高效流程:渲染 101 集群加速实战​

一、核心优势:适配 Blender 全场景需求​ ✅ 全渲染器深度兼容​ Cycles(CPU/GPU 模式):云端 4090 显卡渲染速度比本地快 12 倍,支持 8K 分辨率 16K 纹理无压力​ Eevee 实时渲染:集群同步输出预览动画&am…

SQL学习记录01

什么是SQL? Structured Query Language (结构化查询语言),与关系型数据库进行通信的标准语言。什么是数据库?“按照数据结构来组织、存储、和管理数据的仓库。”一个长期存储在计算机内的、有组织的、可共享的、统一管…

医疗项目如何应对法规变更?

医疗项目应对法规变更的关键策略包括建立法规监测体系、及时内部培训和沟通、调整业务流程和合规标准、技术系统快速迭代升级。 其中,建立有效的法规监测体系尤其重要。这意味着企业需要实时关注监管机构发布的政策更新和公告,迅速理解法规变化内容及对自…

AI Top10

AI 前十排名排名团队/机构名称国家核心优势领域1DeepMind英国强化学习、Alpha系列模型2OpenAI美国GPT系列、多模态大模型3DeepSeek中国高效NLP模型、开源生态建设4Google Brain美国Transformer架构、TensorFlow框架5Meta AI (FAIR)美国计算机视觉、Llama系列模型6NVIDIA Resear…

LabVIEW通知器函数应用

介绍LabVIEW通知器(Notifier)函数,演示两类并行循环通信场景:单对循环数据交互、多循环通知聚合,含程序框图(数据发送 / 接收、多循环通知)与前面板(数据显示)。功能说明…

推荐《Python 编程:从入门到实践》之Python编程的基础知识

在 Python 学习资源琳琅满目的当下,《Python 编程:从入门到实践》脱颖而出,堪称 Python 入门的不二之选。本书由经验丰富的教育工作者撰写,以清晰易懂的语言和循序渐进的方式,引领读者从 Python 的基础语法逐步迈向实际…

Kafka入门和基础配置

目录Kafka入门消息引擎系统ABC快速搞定Kafka术语kafka三层消息架构名词术语Kafka基础Kafka部署参考重要配置参数Broker端参数Topic级别参数JVM参数Kafka是消息引擎系统,也是分布式流处理平台Kafka入门 消息引擎系统ABC 民间版:系统 A 发送消息给消息引…

OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析

🌐 OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析🏗️ 一、系统架构全景图 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner发布2025年中国网络安全成熟度曲线:网络安全的重点正转向保护AI、推动业务转型和增强组织韧性

网络安全的重点正转向保护人工智能、推动业务转型和增强组织韧性。首席信息官及其安全和风险管理主管可以利用这份技术成熟度曲线来识别实用且高价值的技术和实践,从而保持安全和敏捷。 战略规划假设 到2027年,60%的中国大型组织将在安全运营中心&#x…

网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线

在当今数字化时代,网络已成为企业运营的基础,随着网络的广泛应用,网络准入控制系统作为保障网络安全的重要手段,正发挥着至关重要的作用。保障网络安全网络准入控制系统如同网络的忠诚卫士,它为网络大门安装了智能锁&a…

java基础(day09)

目录 1.继承的作用 2.继承树 3.protected和super protected super 注:super/this()--构造方法,第一行,一般不同时出现 4.向上向下转型 向上转型 向下转型 final 小结 1.继承的作用 理解:首先就是可以实现代码复用&#x…

如何进行选择。

初始理解问题 首先,我们需要明确题目在问什么。题目“House Robber”描述的是一个强盗在一排房屋前,每个房屋都有一定数量的钱。强盗不能连续抢劫两个相邻的房屋,否则会触发警报。目标是抢劫到最多的钱。 动态规划的思路 这个问题可以使用动态…

PHP语法高级篇(三):Cookie与会话

Cookie与会话在 Web 编程中十分实用:Cookie 能实现一周免登录,还能记住用户的主题偏好;会话可保存当前用户信息,也能临时存储购物车数据。本篇文章将记录Cookie与会话的学习过程。 一、Cookie cookie 常用于识别用户。cookie 是服…

11. JVM中的分代回收

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

基于PaddleOCR的营业执照识别与数据分析系统

基于PaddleOCR的营业执照识别与数据分析系统 1. 项目概述 本项目旨在利用百度PaddleOCR技术识别营业执照图片中的关键信息,结合自然语言处理(NLP)和卷积神经网络(CNN)对OCR结果进行分类处理,最后对识别出的收入流水数据进行深度分析与可视化展示。系统将实现从图像识别到数…

SpringBoot JSON字典序列化翻译

🧩 一、效果预期 Data public class UserVO {private String status;DictTranslate(type "user_status")private String statusName; }最终返回 JSON: {"status": "1","statusName": "启用" }&#…

基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(5)失败用例截图与重试

在UI自动化测试用例执行过程中,经常会有很多不确定的因素导致用例执行失败,比如网络原因、环境问题等,所以我们有必要引入重试机制(失败重跑),来提高测试用例执行稳定性。准备工作:我们在进行失…