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

鸿蒙项目云捐助第七讲鸿蒙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.mzph.cn/pingmian/64449.shtml

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

相关文章

电子应用设计方案-58:智能沙发系统方案设计

智能沙发系统方案设计 一、引言 智能沙发作为一种融合了舒适与科技的家居产品,旨在为用户提供更加便捷、舒适和个性化的体验。本方案将详细介绍智能沙发系统的设计思路和功能实现。 二、系统概述 1. 系统目标 - 实现多种舒适的姿势调节,满足不同用户的…

【vue-codemirror】Vue中强大的编辑器插件--vue-codemirror

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Linux下学【MySQL】所有常用类型详解( 配实操图 通俗易懂 )

每日激励:“当你觉得你会幸运时,幸运就会眷顾你,所以努力吧,只要你把事情做好,并觉得你会幸运,你将会变得幸运且充实。” 绪论​: 本章继续学习MySQL的知识,本章主要讲到mysql中的所…

你了解网络层的 ICMP 吗?

你了解网络层的 ICMP 吗? 一. 什么是 ICMP二. ICMP 的工作原理三. ICMP 的结构四. ICMP 的常见应用五. ICMP 的局限性与安全性六. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神…

uniapp使用百度地图配置了key,但是显示Map key not configured

搞了我两天的一个问题。 hbuilderx版本:4.36 问题介绍: 我的项目是公司的项目,需要在H5端使用百度地图,使用vue-cli创建的uniapp,就是uni代码在src里的目录结构。就是使用这种方式才会遇到这个问题。 问题原因&#xf…

【Qt】drawText字体大小问题探究

背景 软件的一个功能是: 打开图片在图片上绘制序号,序号的样式是圆圈内包含数字将带有序号的图片打印出来 实现思路也很简单,在屏幕上显示时重写paintEvent函数,利用QPainter完成图片和序号的绘制。打印时只需要将QPainter对应…

Win11安装安卓子系统WSA

文章目录 简介一、启用Hyper-V二、安装WSA三、安装APKAPK商店参考文献 简介 WSA:Windows Subsystem For Android 一、启用Hyper-V 控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选 Hyper-V 二、安装WSA 进入 Microsoft Store,下拉框改为 …

数据结构 ——二叉树转广义表

数据结构 ——二叉树转广义表 1、树转广义表 如下一棵树&#xff0c;转换为广义表 root(c(a()(b()()))(e(d()())(f()(j(h()())())))) (根&#xff08;左子树&#xff09;&#xff08;右子树&#xff09;) 代码实现 #include<stdio.h> #include<stdlib.h>//保存…

企业车辆管理系统(源码+数据库+报告)

一、项目介绍 352.基于SpringBoot的企业车辆管理系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块 二、项目技术 编程语言&#xff1a;Java 数据库&#xff1a;MySQL 项目管理工具&#xff1a;Maven 前端技术&#xff1a;Vue 后端技术&a…

ubuntu20.04复现 Leg-KILO

这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录&#xff0c;例如 /opt/opencv-3.2&#xff1a;出错&#xff1a; 使用多线程编译错误1&#xff1a; stdlib.h: 没有那个文件或目录错误2&#xff1a;er…

基于SpringBoot+vue的高校学生成绩管理系统

目录 一、绪论1.1 开发背景1.2 系统开发平台1.2.1 Vue简介1.2.2 IDEA简介1.2.3 MySQL简介 1.3 系统开发环境 二、需求分析2.1 系统需求分析2.2 系统数据流图 三、概要设计3.1 业务流程分析 四、详细设计4.1 系统功能结构图4.2 E-R模型4.3 数据库表设计 五、模块实现5.1 管理员主…

Docker--Docker Image(镜像)

什么是Docker Image&#xff1f; Docker镜像&#xff08;Docker Image&#xff09;是Docker容器技术的核心组件之一&#xff0c;它包含了运行应用程序所需的所有依赖、库、代码、运行时环境以及配置文件等。 简单来说&#xff0c;Docker镜像是一个轻量级、可执行的软件包&…

RabbitMQ的核心组件有哪些?

大家好&#xff0c;我是锋哥。今天分享关于【RabbitMQ的核心组件有哪些&#xff1f;】面试题。希望对大家有帮助&#xff1b; RabbitMQ的核心组件有哪些&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ是一个开源的消息代理&#xff08;Messag…

[OpenGL] Transform feedback 介绍以及使用示例

一、简介 本文介绍了 OpenGL 中 Transform Feedback 方法的基本概念和代码示例。 二、Transform Feedback 介绍 1. Transform Feedback 简介 根据 OpenGL-wiki&#xff0c;Transform Feedback 是捕获由顶点处理步骤&#xff08;vertex shader 和 geometry shader&#xff0…

【Linux】—简单实现一个shell(myshell)

大家好呀&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流哦&#xff01; 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&…

什么是Apache日志?为什么Apache日志分析很重要?

Apache是全球最受欢迎的Web服务器软件&#xff0c;支持约30.2%的所有活跃网站。凭借其可靠性、灵活性和强大的功能&#xff0c;Apache数十年来一直是互联网的中坚力量。 一、Apache Web服务器的工作原理 Apache Web服务器的工作原理如下&#xff1a; 接收HTTP请求&#xff1…

Spring Security 6 系列之一 - 开篇入门

之所以想写这一系列&#xff0c;是因为之前工作过程中使用Spring Security&#xff0c;但当时基于spring-boot 2.3.x&#xff0c;其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0&#xff0c;结果一看Spring Security也升级为6.3.0&#xff0c;关键是其风…

docker 搭建自动唤醒UpSnap工具

1、拉取阿里UpSnap镜像 docker pull crpi-k5k93ldwfc7o75ip.cn-hangzhou.personal.cr.aliyuncs.com/upsnap/upsnap:4 2、创建docker-compose.yml文件&#xff0c;进行配置&#xff1a; version: "3" services:upsnap:container_name: upsnapimage: crpi-k5k93ldwf…

7.Linux - 安装MySQL、Tomcat、Nginx、RabbitMQ、Redis

Linux - 安装MySQL 文章目录 Linux - 安装MySQL一、MySQL 5.71.1 安装1.2 配置 二、MySQL 8.x2.1 安装2.2 配置 三、Tomcat安装3.1 安装 JDK3.2 Tomcat&#xff08;整的不行&#xff09; 四、Nginx4.1 安装 五、RabbitMQ5.1 安装 六、Redis6.1 安装 一、MySQL 5.7 1.1 安装 我…

python | linux | ModuleNotFoundError: No module named ‘WFlib‘ |找不到模块

问题&#xff1a; (base) beautyby521-7:~/Website-Fingerprinting-Library-master$ bash scripts/NetCLR.sh Traceback (most recent call last):File "/home/beauty/Website-Fingerprinting-Library-master/exp/pretrain.py", line 8, in <module>from WFli…