鸿蒙项目云捐助第九讲鸿蒙App应用的捐助详情页功能实现

鸿蒙项目云捐助第九讲鸿蒙App应用的捐助详情页功能实现

这里接下来继续实现捐助详情页的布局页面,也就是当用户进入到分类页面后,点击分类的每一个商品就进入到捐助商品的详情页,这里的布局可以从下面的模板演化而来。

下面根据这个模板来进行鸿蒙捐助详情页的实现。

一、鸿蒙云捐助详情页的实现

详情页也做成组件来处理,在component中建立一个详情页的ArkTs文件,如下图所示。

在详情页中上半部分实际上就是捐赠图片的大图展示,这里为了生动展示捐助的意义,把捐赠的图片显示在一个岛屿上面,每一个捐赠活动都可以看做是一个小岛,每一个小岛都需要捐赠人共同进行建设。这里可以从“百度图库”中找到两个图片,一个是岛屿, 一个是捐助的详情大图。将这两个图片也是放置在resources目录下的base目录下的media文件夹中。然后就可以在代码中将岛屿与捐助大图有机组合起来。具体代码如下图所示。

在代码中首先有一个Flex的弹性盒子,这个弹性盒子是Column()的竖向排列,其上半部分就是一个小岛配上一个捐助的图片,因此需要一个Flex的弹性盒子充当小岛,这个充当小岛的弹性盒子是Column()竖向也好,是Row()的横向也罢,都不影响里面的元素,因为里面的元素只有一个Image图片,不过这个充当小岛的弹性盒子需要使用把justifyContent设置成FlexAlign.Center进行水平居中,也需要把alignItems设置成ItemAlign.Center进行垂直居中。小岛中的Image图片组件设置其width宽度及border的边框属性,并把边框做borderRadius的圆角处理,其次还需要margin的外边距处理。这样小岛中的图片就显得柔和多了。对于充当小岛的Flex需要一个小岛的图片背景,设置其width宽度和height高度即可。

接下来大图的下面就是捐助的题目及开始时间及结束时间的总览部分。这里的代码实现如下图所示。

这里把总览两个字和结束日期的文字显示通过Flex的弹性盒子包裹,弹性盒子Flex设置direction方向属性为FlexDirection.Row的水平设置,对于总览和结束时间的两个字采用FlexAlign.SpaceBetween两端对齐的方式处理,同时也需要alignItems属性配置ItemAlign.Center进行垂直居中。在Flex弹性盒子中的Text文字设置fontSize字号大小即可。

接下来对于爱心捐款的数目,这里采用常用的前端布局——豆腐块的方式,如下图所示。

对于这段豆腐块形状的布局可以整体一个横向的盒子,左边的盒子独立成列,右边两个盒子竖向排列与左边的盒子对齐即可。代码如下所示。

这段代码比较长,其实很好理解。

首先有一个Flex的弹性盒子,设置其属性direction为FlexDirection.Row的横向排列其中的元素。在其中首先有一个大的Flex弹性盒子,这个弹性盒子的height高度是右侧两个盒子竖向排列的高度,左侧的盒子height高度为140,那么右侧有一个Flex弹性盒子,其总体高度也是140,但其中有两个小的弹性盒子Flex,这两个小的弹性盒子是竖向排列,因此外部的Flex弹性盒子需要声明direction方向为FlexDirection.Column的竖向排列,里面的小盒子Flex其高度height各为70。对于每个小盒子中都存放的是两个Text文字组件,显示具体已捐价格和待赠捐赠的价格。左边的大盒子里面显示爱心捐助的总额提示及具体的文字,具体捐赠的数额文字和还一个心形图形构成FlexAlign.SpaceBetween的两端对齐的关系。

其布局的最终效果图如下图所示。

这里还存在一个逻辑,用户进入这个页面,肯定是需要对商品进行捐赠处理的,也就是阅读了捐赠商品的详情信息后,继续对捐赠商品进行捐赠功能的添加。这里需要添加页面的下半部分(捐款功能),可以参阅如下图所示的模板实现。

这里可以先显示捐赠的组织,然后再显示是否可以捐赠物品,或者可以捐赠什么样的物品。代码如下图所示。

这里的布局比较简单,直接使用弹性盒子Flex并且将其属性设置为direction方向参数FlexDirection.Column的竖向排列,其中的元素还设置了alignItems的垂直居中处理,这里alignItems的属性为ItemAlign.Center。在Flex弹性盒子中,上面显示了组织的Text文字组件,下面显示了“可以捐赠物品:书,电脑,本,手机等”的提示信息。在显示的信息下面留有一个Flex弹性盒子,这个盒子中就可以放置“立即捐款”和“加入捐款岛”的两个按钮。代码如下图所示。

代码中可以看出把这个预留的弹性盒子Flex设置其属性direction方向为FlexDirection.Row横向,并且使两个按钮通过FlexAlign.SpaceBetween进行两端对齐,其中“加入捐款岛”的Button按钮设置其内容后,设置width为53%,并且backgroudColor的背景色为“红色”,按钮上的fontSize文字大小为20,其中“立即捐款”的Button按钮设置其内容后,设置width为43%,两个按钮不一样大,但是它们的fontSize字号大小及backgroundColor的背景颜色是一样的值来设置的。

这样就实现了捐款的详情表布局,其预览效果如下图所示。

这里完成了鸿蒙Next云捐助项目中捐款商品详情的页面,后面持续完成捐款岛,我的相关的功能页面,请持续关注。

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

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

相关文章

【数学】矩阵的逆与伪逆 EEGLAB

文章目录 前言matlab代码作用EEGLAB 中的代码总结参考文献 前言 在 EEGLAB 的使用中,运行程序时出现了矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND 1.873732e-20 的 bug,调查 EEGLAB 后发现是 raw 数据的问题。 matlab代码 A_1 …

华为HarmonyOS NEXT 原生应用开发:鸿蒙中组件的组件状态管理、组件通信 组件状态管理小案例(好友录)!

文章目录 组件状态管理一、State装饰器1. State装饰器的特点2. State装饰器的使用 二、Prop装饰器(父子单向通信)1. Prop装饰器的特点2. Prop装饰器的使用示例 三、Link装饰器(父子双向通信)1. Link装饰器的特点3. Link使用示例 四…

Pytorch | 对比Pytorch中的十种优化器:基于CIFAR10上的ResNet分类器

Pytorch | 对比Pytorch中的十种优化器:基于CIFAR10上的ResNet分类器 CIFAR10数据集ResNet提出背景网络结构特点工作原理优势 代码实现分析utils.pymain.py导入必要的库设备选择与数据预处理定义加载训练集和测试集主函数部分训练部分测试部分 结果10种优化器对应的训…

Linux系统操作03|chmod、vim

上文: Linux系统操作02|基本命令-CSDN博客 目录 六、chmod:给文件设置权限 1、字母法 2、数字法(用的最多) 七、vim:代码编写和文本编辑 1、启动和退出 1️⃣启动 2️⃣退出 2、vim基本操作 六、chmod&#x…

徐州数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂

#徐州数字孪生工业互联网#在当下智能制造的热潮之下,徐州作为中国制造业的重要基地,正积极拥抱数字化转型,通过数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂,引领制造业向更高效、更智能、更绿色的方向发…

C# 探险之旅:第二十四节 - 类型class基础,一场“类”似的奇妙冒险

嘿,勇敢的探险家们!欢迎来到C#王国的“类”似奇妙冒险!今天,我们要深入探索一个神秘而强大的领域——class(类)。想象一下,class就像C#世界里的一块魔法土地,每块土地上都能孕育出独…

(五)机器学习 - 数据分布

数据分布(Data Distribution)是指数据在不同值或值区间内的分布情况,它描述了数据点在整个数据集中是如何分散或集中的。数据分布可以通过多种方式来分析和表示,包括图形和数值方法。 常见的数据分布特征和描述数据分布的方法&…

基于stm32的红外测温系统设计(论文+源码)

1总体方案设计 本课题为基于STM32的红外测温系统设计,在此将系统架构设计如图3.1所示, 整个系统包括STM32F103单片机,红外测温模块MLX90614,显示模块OLED12864,蜂鸣器以及按键等构成,在功能上,…

排序算法(5):归并排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 归并排序 归并排序采用分治法,将序列分成若干子序列,每个子序列有序后再合并成有序的完整序列。 在数组排序中,如果只有一个数,那么它本身就是有序的。如果有两个数&#xff0…

JSSIP的使用及问题(webRTC,WebSockets)

简介 项目中有一个需要拨打电话的功能,要求实时的进行音频接听,并且可以在电话接听或者挂断等情况下做出相应的操作。jssip作为一个强大的实现实时通信的javascript库,这不门当户对了嘛。 jssip(官网: JsSIP - the J…

DP3复现代码运行逻辑全流程(六)—— gen_demonstration_adroit.sh 演示生成与可视化

用于生成演示、培训和评估的脚本都在 Scripts/ 文件夹中 DP3 通过 gen_demonstration 生成演示,即训练数据,例如: bash scripts/gen_demonstration_adroit.sh hammer 这将在 Adroit 环境中生成锤子任务的演示。数据将自动保存在 3D-Diffusion-Policy/…

Python常用字符串排序●sorted()函数--一行语句简洁实现

在Python等编程中,时常会用到字符串排序。 今天在这里只讲讲最常用的Python字符串排序。 同时,只讲sorted()函数方法。 给定一个字符串列表: sl [共和国, 中国, 中华人民共和国, 大中华, 人民共和国]。 第一种排序方法是不使用任何参数…

知从科技总经理受邀参加上海临港新片区商会“湖畔TECS”技术分享沙龙(第五期)

11月26日,上海知从科技有限公司创始人陈荣波先生受邀出席临港新片区商会 “湖畔TECS”技术分享沙龙(第五期)活动,并在活动上为参会嘉宾们做了主题分享。本次活动由临港新片区商会主办,智能网联汽车创新联盟协办&#x…

【MySQL数据库】Ubuntu下的mysql

目录 1,安装mysql数据库 2,mysql默认安装路径 3,my.cnf配置文件 4,mysql运用的相关指令及说明 5,数据库、表的备份和恢复 mysql是一套给我们提供数据存取的,更加有利于管理数据的服务的网络程序。下面…

Docker与虚拟机:虚拟化技术的差异解析

在信息技术飞速发展的今天,虚拟化技术已成为现代IT架构不可或缺的一部分。而虚拟化从技术层面划分则分为以下几种: 完全虚拟化:虚拟机能够完全模拟底层硬件的特权指令的执行过程,客户操作系统无须进行修改。 硬件辅助虚拟化&#…

2024.12.14 TCP/IP 网络模型有哪几层?

2024.12.14 TCP/IP 网络模型有哪几层? 2024.12.14 今天周六 看到大伙都在考六级,我来复盘小林coding的计算机网络的知识点: TCP/IP 网络模型有哪几层? 问大家,为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信,有…

一次Mysql查询踩坑经历(查询索引失效问题)

1、之前的sql建表脚本 CREATE TABLE crm_driver (id bigint(22) NOT NULL AUTO_INCREMENT COMMENT 主键,clue_id bigint(20) NOT NULL COMMENT 线索表id,driver_name varchar(128) NOT NULL COMMENT 试驾人姓名,driver_phone varchar(32) NOT NULL COMMENT 试驾人手机号,drive…

从 SSM 视角剖析校园一卡通密钥管理系统的技术架构演进

第2章 开发环境与技术 开发校园一卡通密钥管理系统需要搭建编程的环境,也需要通过调查,对各个相关技术进行分析,选取适合本系统开发的技术与工具。 2.1 MYSQL数据库 题目确定了是一个应用程序之后,就开始按部就班的进行设计与分析…

RabbitMQ中的Publish-Subscribe模式

在现代分布式系统中,消息队列(Message Queue)是实现异步通信和解耦系统的关键组件。RabbitMQ 是一个功能强大且广泛使用的开源消息代理,支持多种消息传递模式。其中,Publish/Subscribe(发布/订阅&#xff0…

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(四)

目录 ARC规则 规则 对象型变量不能作为C语言结构体的成员 显式转换id和void* 属性 数组 ARC规则 规则 在ARC有效的情况下编译源代码必须遵守一定的规则: 主要解释一下最后两条 对象型变量不能作为C语言结构体的成员 要把对象型变量加入到结构体成员中时&a…