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

ops/2024/12/17 9:55:55/

鸿蒙项目云捐助第七讲鸿蒙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.ppmy.cn/ops/142614.html

相关文章

使用k6进行Redis基准测试

1.安装环境 前提条件:已经安装go 安装xk6 go install go.k6.io/xk6/cmd/xk6latest 安装成功会在GOPATH目录生成xk6可执行文件 安装xk6-redis 切换到xk6工作目录,执行如下命令 cd /Users/wan/go/bin ./xk6 build --with github.com/grafana/xk6-re…

Vue入门到精通:核心语法—计算属性

Vue入门到精通:核心语法—计算属性 计算属性是Vue.js中一个非常强大的功能,它允许我们根据现有的数据动态地计算出新的值。计算属性在模板中使用时,就像普通的属性一样,但它们是基于依赖进行缓存的,只有当相关依赖发生…

linux命令uname、lsof、netstat、ss使用教程

uname uname 是一个 Linux/Unix 系统中的命令,用于显示操作系统和内核相关的信息。它可以显示系统的名称、 内核版本、硬件架构等信息。 查看操作系统名称 uname该命令默认只显示系统的名称,例如 Linux。 查看所有系统信息 uname -a-a 选项会显示系…

如何与GPT更高效的问答

与GPT进行高效沟通的关键在于提问的方式。通过合理的提问技巧,可以更清晰地表达需求,从而获得更准确的回答。以下是一些实用的建议,帮助你提升与GPT的交流效率。 1. 使用简单明了的语言: 尽量避免使用复杂的术语和行话&#xff0c…

Guava 库中的 `Multiset` 是一个允许元素重复的集合

Guava 库中的 Multiset 是一个允许元素重复的集合。它继承自 Collection 接口,提供了额外的方法来处理元素的计数。以下是一些使用 Guava Multiset 的基本代码示例: 引入 Guava 库 首先,确保你的项目中已经添加了 Guava 库的依赖。如果你使…

爬虫逆向学习(十四):分享一下某数通用破解服务开发经验

阅前须知 这篇博客不是教大家怎么实现的,而且告知大家有这个东西,或者说一种趋势,借此分享自己大致的实现经验。具体的实现我也不好整理,毕竟是在别人的基础上缝缝补补。 前言 使用补环境方式破解过某数的同学都知道&#xff0…

如何排查服务器是否有被黑客入侵的迹象?

排查服务器是否被黑客入侵是系统维护的重要工作。以下是详细的排查步骤,通过分析日志、检查用户、进程、网络连接等多个方面来判断服务器是否存在被入侵的迹象。 一、入侵的常见迹象 在开始排查之前,以下是一些常见的入侵迹象,若发现这些情况…

uniapp+uview 图片预览组件

uniapp uview 图片列表预览组件 注意&#xff1a;在app端需要先判断是否存在手机相册权限 <template><!-- css使用的是uview1.0组件中的css --><!-- u-image 使用的是uview1.0的组件 --><view class"u-flex u-row-between u-flex-wrap">&…