鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现

news2024/12/17 9:14:04

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现

最后设置首页的推荐模块,参考模板如下图所示。

一、首页热门推荐模块的实现

对于热门推荐模块,先有上面的小标题栏,这里的标题栏也有一个小图标,首先从“百度图库”中搜索热门推荐的图标。

然后把下载的热门小图标放在resources文件夹下的base文件夹下的media目录中,如下图所示。

有了图标的准备,还需要文字,文字需要把资源放在resources目录下的zh_CN目录下的string.json文件中,如下图所示。

有了图标和文字,就可以使用Flex弹性盒子继续布局IndexComponent的组件,代码如下图所示。

这里弹性盒子Flex使用FlexDirection.Row进行横向布局,由于只有图标和文字两个元素,这里使用FlexAlign.SpaceBetween进行两端对齐,图标在左边,文字在右边,弹性盒子Flex又使用alignItem的ItemAlign.Center进行竖向居中。

对于Flex中的Image和Text也是添加资源后,对于Image添加width宽和height高,对于Text添加fontColor的字体颜色。

整体的Flex热门推荐小题目条也需要添加backgroundColor的背景颜色,margin的外边距和padding的内边距,这里的外边距只添加上部的外边距,其大小是20。

设置热门推荐条后

接下来就需要首页推荐项目的条目设置,这里参照的布局模板如下图所示。

从模板上看,需要收集4幅热门推荐的图片,这里可以从“百度图库”中搜索捐助类相关的推荐类项目图片,如下图所示。

这里通过搜索找到4幅图片,把图片放在项目resources目录的base目录下的media目录中。如下图所示。

这个组件还是在首页中显示,代码需要写在IndexComponent的组件中,同时这里也需要热门捐助图片及热门捐助文字的组合,也需要建立json数据文件进行图片和文字的对应关系,在之前创建的文件夹mockjs的目录下建立remmand.js的数据模拟文件,如下图所示。

这里创建recommand.js文件后,使用const方法定义recommand的推荐数组参数,最后使有export导出定义的数组参数。代码如下图所示。

有了模拟数据后,按照之前首页模块中图片文字对应关系的开发思想,还需要有一个鸿蒙ArkTS的类与推荐的数据进行对应。由于这里需要的也是图片和文字,因此与之前建立的某些鸿蒙类相似,我们就使用之前创建的鸿蒙类MyNews来对应推荐模块的功能。代码如下图所示。

有了模拟数据和鸿蒙类对象后就可以进行IndexComponent首页组件的推荐功能列表实现。这里首先导入模拟的推荐列表数据,如下图所示。

导入数据后,就可以在IndexComponent组件中的build()方法中添加推荐模块布局代码。代码如下图所示。

这里也使用Flex的弹性盒子,弹性盒子使用{wrap:FlexWrap.Wrap}声明当元素超出一行后进行换行处理。在Flex弹性盒子中使用ForEach遍历所有的推荐数据数组,对于每一个遍历的子项item就是鸿蒙MyNews类,在ForEach的循环体中有UI的组件Column()对其中的元素进行竖向列排列,这里需要排列的有Image图像组件和Text文本组件。文本Text组件和Image图像组件分别设置width宽度,在Image组件中设置width宽度和height高度。对于整体包括图像组件Image和文字组件Text的元素Column()列元素设置其border边框及height高度,还有margin外边距和padding的内边距。

代码在DevEco Studio编辑工具的预览窗口中预览得到的结果如下图所示。

这里显示布局混乱是由于首页中轮播图组件,分类导航组件再加上资讯组件及热门捐赠组件竖向排列在一起,已经超出了手机屏幕显示的一屏,需要使用鸿蒙Next的Scroll进行屏幕的滚动。

设置Scroll元素标签时,把首页组件中Swiper的滑动轮播,分类导航组件Flex,资讯分类组件Flex及热门推荐组件Flex都放在Scroll的标签中,代码如下图所示。

图中阴影部分的代码需要全部放在Scroll的标签当中,代码结构如下图所示。

设置成功后,首页的内容可以向上拖动,并显示出“热门推荐”的项目条。具体效果如下图所示。

至此,首页部分已大功告成。后面持续完成捐助页,捐助岛等相关的功能页面,请持续关注。

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

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

相关文章

MySQL八股-MVCC入门

文章目录 当前读(加锁)快照读(不加锁)MVCC隐藏字段undo-log版本链A. 第一步B.第二步C. 第三步 readview MVCC原理分析RCA. 先来看第一次快照读具体的读取过程:B. 再来看第二次快照读具体的读取过程: RR隔离级别 当前读…

基于单片机的无绳跳绳设计

基于单片机设计了一款无绳跳绳,采用传感器代替了绳子的摆动,从而实现了模拟跳绳的功能。其研究的方法是:以单片机作为这次设计的核心,它的外围包含有传感器模块、按键模块、显示模块、语音播报模块及电源模块等。本设计采用STM32芯…

【图像处理】利用numpy实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡

直方图均衡化是一种在图像处理技术,通过调整图像的直方图来增强图像的对比度。 本博客不利用opencv库,仅利用numpy、matplotlib来实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡 直方图均衡 包括四个流程 计算图像RGB三通道的归一化直…

Azure Function流式返回

最近用azure function做了一个api和llm交互,需要流式返回。但是默认不支持流返回,搜索了一下。记录。 官方文档:https://techcommunity.microsoft.com/blog/azurecompute/azure-functions-support-for-http-streams-in-python-is-now-in-prev…

【软件工程】简答题系列(一)(山东大学·软院考试专属)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀软件开发必练内功_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

WebGIS城市停水及影响范围可视化实践

目录 前言 一、相关信息介绍 1、停水信息的来源 2、停水包含的相关信息 二、功能简介 1、基础小区的整理 2、停水计划的管理 三、WebGIS空间可视化 1、使用到的组件 2、停水计划的展示 3、影响小区的展示 4、实际效果 四、总结 前言 城市停水,一个看似…

数据结构,链表的简单使用

任意位置删除&#xff1a; void Any_Del(LinkListPtr h,int a)//任意删 {if(NULLh||a>h->len){printf("删除失败");}LinkListPtr ph;for(int i0;i<a-1;i){pp->next;}LinkListPtr p2p;p2p2->next;p->nextp->next->next;free(p2);p2NULL;h-&g…

组织空转数据(人类+小鼠)

空间转录组&#xff08;Spatial Transcriptomics&#xff09;是一种新兴的高通量基因组学技术&#xff0c;它允许我们在组织切片中同时获取基因表达信息和细胞的空间位置信息。其可以帮助我们更好地理解细胞在组织中的空间分布和相互作用&#xff0c;揭示组织发育、器官功能和疾…

人工智能增强的音频和聊天协作服务

论文标题&#xff1a;AI-enabled Audio and Chat Collaboration Services 中文标题&#xff1a;人工智能增强的音频和聊天协作服务 作者信息&#xff1a; Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…

【操作系统1】一篇文章便可入门操作系统

操作系统 (Operating System,OS)是一种系统软件&#xff0c;它负责管理计算机的硬件和软件资源。它的主要任务是组织和调度计算机的工作&#xff0c;并分配资源给用户和其他软件。操作系统为用户和软件提供了方便的接口和环境。它是计算机系统中最基本的软件之一。 一、操作系…

51c嵌入式~单片机~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、STM32代码远程升级之IAP编程 IAP是什么 有时项目上需要远程升级单片机程序&#xff0c;此时需要接触到IAP编程。 IAP即为In Application Programming&#xff0c;解释为在应用中编程&#xff0c;用户自己的…

ComfyUI 与 Stable Diffusion WebUI 的优缺点比较

ComfyUI与Stable Diffusion WebUI都是AI绘画领域比较知名两款产品&#xff0c;两者存在诸多差异&#xff0c;本篇就带你熟悉二者的优劣&#xff0c;方便自己做出决策。 界面与操作 ComfyUI&#xff1a;界面简洁直观&#xff0c;通过节点和连线的方式构建工作流&#xff0c;用…

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片&#xff0c;无法预览&#xff0c;提示&#xff1a; Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法&#xff1a; 点击左边这个刷新下即可

从数据到洞察:年度数据分析实战指南

在当今数据驱动的时代&#xff0c;年度数据分析已成为企业战略规划与运营优化的核心环节。通过对海量数据的深入挖掘与分析&#xff0c;企业能够准确把握市场动态、用户行为、产品性能等多维度信息&#xff0c;进而制定更加精准有效的策略。本文将从数据收集、处理、分析到应用…

虚拟机安装+XS hell+Xfit(安装方法大致都相同,若不一样,可看其他的)

一、虚拟机 &#xff08;一&#xff09;虚拟机 虚拟机&#xff08; Virtual Machine &#xff09;通过软件模拟的完整的计算机系统。 是运行在一个完全隔离的环境中的计算机系统。通俗的讲就是虚拟出来的电脑&#xff0c;这个虚拟处理的电脑和 真实的电脑几乎一模一样&#…

RabbitMQ实现消息发送接收——实战篇(路由模式)

本篇博文将带领大家一起学习rabbitMQ如何进行消息发送接收&#xff0c;我也是在写项目的时候边学边写&#xff0c;有不足的地方希望在评论区留下你的建议&#xff0c;我们一起讨论学习呀~ 需求背景 先说一下我的项目需求背景&#xff0c;社区之间可以进行物资借用&#xff0c…

ubuntu上更改ext4格式的硬盘为 windows的 NTFS 格式参考

1. ubuntu上安装 sudo apt-get install gparted 2. 参考如下&#xff0c;下面是转换后的样例。 3.windows上添加识别新硬盘参考 先在设备管理器中 找到下面 磁盘管理 如下&#xff1a;找到类似下面的磁盘2 查看相关信息 右键可以新建卷和格式化&#xff0c;下面是已经新建…

Java 垃圾回收机制详解

1 垃圾回收的概念 垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;是自动管理内存的一种机制&#xff0c;用于释放不再使用的对象所占用的内存空间&#xff0c;防止内存溢出。垃圾回收器通过识别和回收那些已经死亡或长时间未使用的对象&#xff0c;来优化…

拿到小米 Offer,却迷茫了。。

大家好&#xff0c;我是程序员鱼皮&#xff0c;12 月了&#xff0c;很多小伙伴也拿到了秋招的 Offer&#xff08;没拿到也不要灰心&#xff09;&#xff0c;但即使拿到 Offer&#xff0c;可能还会有一些其他的顾虑。今天分享我们编程导航一位鱼友的提问&#xff0c;给大家作为学…