news 2026/7/7 18:51:32

鸿蒙5.0开发实战系列(一):黑马云音乐“猜你喜欢”列表布局实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙5.0开发实战系列(一):黑马云音乐“猜你喜欢”列表布局实现

鸿蒙5.0开发实战系列(一):黑马云音乐“猜你喜欢”列表布局实现

在鸿蒙5.0应用开发的学习过程中,页面布局是基础且核心的能力。本文将基于ArkTS技术,手把手带大家完成黑马云音乐“猜你喜欢”歌曲列表的布局开发,同时掌握鸿蒙开发中的多个关键组件与属性用法。

一、布局核心思路

在开始代码编写前,先明确鸿蒙页面布局的核心套路——先整体再局部,先布局再内容后美化

  • 先整体再局部:从最外层容器开始,由外到内分层搭建页面结构,避免一上来就陷入细节开发。
  • 先布局再内容后美化:先放置布局容器组件确定页面骨架,再填充文本、图片等内容组件,最后通过各类属性调整样式,让页面更美观。

二、整体容器与安全区配置

1. 外层容器搭建

页面整体内容为垂直排列,因此最外层选择column组件作为容器,同时设置宽高为100%,并配置背景色,让容器铺满整个屏幕:

Column(){// 后续内容将写在此处}.width('100%').height('100%').backgroundColor('#你的背景色值')

2. 安全区扩充

默认情况下,组件的背景色无法覆盖手机状态栏和底部导航栏的系统预留区域。此时可通过ExpandSafeArea属性扩充组件安全区,实现背景色全屏覆盖:

Column(){// 页面内容}// 其他属性....expandSafeArea({top:true,bottom:true})

三、标题“猜你喜欢”实现

column容器内添加text组件实现标题,具体配置如下:

  1. 文字与颜色:设置文字为“猜你喜欢”,并将字体颜色改为白色,避免与深色背景融合:fontColor('#FFFFFF')
  2. 左对齐处理:给text组件设置宽度100%,实现文字左对齐:.width('100%')
  3. 间距控制:给外层column添加左右内边距(如10),防止内容紧贴屏幕边缘;同时给标题text设置底部外边距(如10),预留与下方歌曲列表的间距。

核心代码示例:

Text('猜你喜欢').fontColor('#FFFFFF').width('100%').margin({bottom:10})

四、滚动歌曲列表实现

歌曲数量较多时需要支持滚动,鸿蒙中可通过list容器组件实现该效果,搭配listItem承载单首歌的布局。

1. 基础滚动结构

List(){ListItem(){// 单首歌布局内容}}// 关闭滚动条.scrollBar(BarState.Off)

若需要展示多首歌,可复制多个listItem,后续可结合数据实现动态渲染。

2. 单首歌横向布局容器

单首歌的封面、文字、更多按钮为横向排列,因此在listItem内使用row组件作为容器,并设置宽高和临时背景色辅助调试:

ListItem(){Row(){// 封面、文字、更多按钮内容}.width('100%').height(80)// 调试用背景色,完成后可删除.backgroundColor(Color.Pink)}

五、单首歌各区域布局实现

1. 左侧歌曲封面

使用image组件引入封面图,同时设置尺寸、圆角和间距:

Image($r('app.media.cover')).width(80).height(80)// 设置圆角.border({radius:8})// 与中间文字预留间距.margin({right:10})

2. 右侧更多图标

更多图标为SVG格式,可通过fillColor修改颜色,同时设置合适尺寸:

Image($r('app.media.more')).width(24).height(24).fillColor('#你的图标颜色值')

为让图标自动靠右,需给中间文字区域的容器添加layoutWeight(1),使其占据剩余空间,挤压图标到右侧。

3. 中间文字区域

中间文字包含歌名、VIP标识和歌手名,需嵌套columnrow组件实现:

  • 歌名:用text组件展示,设置白色、左对齐、加粗样式,并添加底部外边距:
Text('麝香夫人').fontColor('#FFFFFF').width('100%').fontWeight(FontWeight.Bold).margin({bottom:15})
  • VIP标识与歌手名:用row组件承载,给VIP标识添加边框、圆角和内边距,同时设置与歌手名的间距:
Row(){Text('VIP').fontColor('#金色值').border({width:1,color:'#金色值',radius:12}).padding({left:5,right:5,top:3,bottom:3}).margin({right:10})Text('凤凰传奇').fontColor('#浅灰色值')}.width('100%')

这是最终的结果,大家可以看一下

六、核心知识点总结

  1. list组件:用于实现滚动列表,搭配listItem承载列表项,通过scrollBar(BarState.Off)可关闭滚动条。
  2. layoutWeight属性:设置为1时,组件将占据外层容器的剩余空间,常用于实现“左右固定、中间自适应”的布局。
  3. ExpandSafeArea属性:可扩充组件安全区,让背景色等样式覆盖系统预留的状态栏和导航栏区域。

本文是鸿蒙5.0开发实战系列的第一篇,后续将继续分享鸿蒙应用开发的更多实战技巧与核心知识点,欢迎持续关注!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 7:08:09

学术写作技术指南:主流平台对比与案例分步教学

工具核心特点速览 工具名称 核心优势 适用场景 数据支撑 aibiye 全流程覆盖降重优化 从开题到答辩的一站式需求 支持20万字长文逻辑连贯 aicheck 院校规范适配模板化输出 国内本硕博论文框架搭建 覆盖90%高校格式要求 秒篇 3分钟文献综述生成 紧急补文献章节 知…

作者头像 李华
网站建设 2026/7/7 10:57:03

智能化学术写作指南:工具选型与分步实践方案

10大AI降重工具核心对比 排名 工具名称 处理速度 降重效果 特色功能 适用场景 1 aibiye 20分钟 AIGC率降至个位数 专业学术降AI查重 AI生成内容优化 2 aicheck 快速 40%→7% 专业术语保留 高重复率紧急处理 3 秒篇 极速 45%→8% 逻辑结构保持 最后一刻降…

作者头像 李华
网站建设 2026/7/6 11:24:37

基于vue的农产品商城系统的设计与实现_x8a7zv8r_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/7/6 19:29:03

计算机毕业设计springboot电子病例系统 基于SpringBoot的智慧医疗病历管理平台 SpringBoot驱动的数字化门诊病历云系统

计算机毕业设计springboot电子病例系统a62vfg20 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。“排队三小时,看病三分钟”曾是不少患者的真实写照,纸质病…

作者头像 李华
网站建设 2026/7/7 17:31:58

windows系统深度学习环境配置

目录 一、windows安装git 三、更新CUDA驱动 3.1 更新驱动 3.2 看CUDA版本号 3.3 看文档 四、安装VS 4.1 安装vs2019或者2022 4.2 配置MSVC的环境变量 五、安装CUDA和cuDNN 5.1 下载cuda安装程序 5.2 安装CUDA 5.3 安装cuDNN 5.4 检查cuda版本 六、安装vscodeanac…

作者头像 李华
网站建设 2026/7/6 19:28:58

毕设项目 深度学习yolo11水果识别系统(源码+论文)

文章目录 0 前言1 项目运行效果2 课题背景2.1. 课题背景2.1.1 农业现代化与智能化需求2.1.2 计算机视觉在农业中的应用发展2.1.3 目标检测技术演进2.1.3.1 传统图像处理阶段(2000-2012)2.1.3.2 机器学习阶段(2012-2016)2.1.3.3 深…

作者头像 李华