当前位置: 首页 > news >正文

鸿蒙项目云捐助第四讲鸿蒙App应用的登陆注册页实现

根据app的操作流程可以知道,当启动页启动后,点击启动页中的页面就进入到了登录页。本讲就是针对于登录注册页的实现,实现的界面参考下图。

这里根据这个素材的参考实现鸿蒙Next云捐助的登录页。

一、鸿蒙Next云捐助登录页的实现

在项目中继续创建login.ets文件,由于login.ets的登陆页面也是显示到app的页面s,这里也要使用@Entry注解。这样建立login.ets的初始结构如下。

这里在build()方法中使用弹性盒子组件Flex,在Flex组件中分析页面的布局方法,这里使用的是竖向的布局,在Flex组件中通过direction的方向属性来决定是否是竖向还是横向,具体设置方法可以这样定义。

Flex({direction:FlexDirection.Column})
这里Column表示的是竖向,
Row表示的是横向。

根据前面登录页的模板,需要人头的图像和文字竖向排列,也就决定了弹性盒子Flex使用Column竖向排列,在Flex中使用Image的图像组件和Text文字组件。

鸿蒙Next规定所有的文字信息都存放在resources的资源文件夹下,zh-CN的文件夹中可以存放中文的信息,如下图所示。

图中在zh_CN文件夹中,有一个string.json文件,在string.json中定义一个name和value的键值,name定义字符串调用的名字,value表示字符串对应的中文意义。

有了文字的定义后,可以在login.ets的build()方法中定义图像和文字的布局排列方式,如下图所示。

这里在Flex的弹性盒子中使用Image组件和Text组件,两个组件都使用$r进行资源的指定。图片的资源调用app.media.user,文字内容的资源调用app.string.myapp_username。

这里引入的Image图像组件需要定义width的宽度和height的高度,对于图像组件的圆角属性可以使用borderRadius属性方法,参数中指明borderRadius的圆角数字就可以实现。这里引入的Text文字组件需要定义字号fontSize的属性方法,在参数中定义一个字体大小数字就可以。Text文字组件也可以使用fontColor定义字体颜色,这个属性方法中通过“Color.颜色名”指示字体的颜色。Text文字组件的居中使用TextAlign.Center属性方法来实现。

对于在弹性盒子中的Image图像组件和Text文字组件可以实现整体居中,这里通过两个属性,alignItem实现垂直轴的居中,justifyContent实现的是水平轴的居中。具体布局代码如下图所示。

代码中对于水平居中使用justifyContent,对于垂直居中使用alignItems,具体设置居中一般都使用下面的固定属性。

 //设置水平居中justifyContent:FlexAlign.Center
//设置垂直居中
alignItems:ItemAlign.Center

在圆角图片和文字的下面是两个输入框,要求用户输入用户名和密码。这里为了防止结构上的错乱,可以把图片组件Image 和文字组件Text收缩一下,如下图所示。

这里布局中又引入一个Flex的弹性盒子,在build()方法中只有一个Flex()的竖向弹性盒子,在鸿蒙Next中,build()方法中只有一个孩子元素。最外层的Flex里面又加入一个Flex的弹性盒子,里面的弹性盒子包含有Image图片组件和Text文字组件,把里面的Flex弹性盒子收缩,这样实现后面的输入框元素不会造成布局混乱。

注意,这里的输入框中是由图片和文字组成的,首先准备两个图片,一个是用户的图片标志,一个是密码的图片标志,通过百度图库中找到的图片标志放在media的文件夹中,如下图所示。

这里先把收集到的图标user_icon的用户图标及key_icon的密码图标放在media的目录下,然后准备文字方面的资源,在resources目录下的zh_CN目录中的string.json文件中定义字符串数据。如下图所示。

这里首先定义一个邮箱的用户名资源,然后在login.ets的登录页面中放置登录框,布局中的代码如下图所示。

这里Flex的弹性盒子组件中包括输入框的图标和输入框的组件,图标采用Image组件,使用width定义Image组件的宽度,输入框和图片组件采用横向排列,Flex弹性盒子声明其方向direction设置为FlexDirection.Row横向布局。对于Flex弹性盒子中的TextInput输入框除了引入placeholder的预置其内容提示外,还定义其圆角属性borderRadius和背景颜色backgroundColor。这里的bordreRadius只定义左上角和左下角为0,这样出现的圆角并不是整个输入框都会圆角,而是某个边出现圆角。backgroundColor的背景颜色为Color.White白色。

下面的密码输入框和用户输入框的布局设置是一样的,不同的是TextField组件多加一个type的属性指定,其type的名称指定为InputType.Password的密码。代码布局如下图所示。

完成密码输入框设置后,最后是一个Button按钮的配置。在Button按钮上也需要设置“立即登录”的按钮,这里设置的文字资源放在resources目录下zh_CN中文文件夹的string.json文件中标明。如下图所示。

在string.json中设置了“立即登录”的文字资源后,就可以在login.ets的最后添加这个Button元素,代码如下图所示。

这里的Button按钮定义了width宽度和height高度,也使用fontSize进行字号的限定, backgroundColor指明了背景颜色,整个按钮也需要margin定义与上面元素的位置,这里引入top属性指明外边距上面的距离。

设置按钮后,最后添加“去注册”功能及“忘记密码”功能的延展。首先从resources目录下zh_CN中文文件夹的string.json文件中标明文字资源。

文字资源定义后,可以从login.ets的build方法中添加“去注册”和“忘记密码”的文本引用,代码如下图所示。

这里的Flex使用了FlexDirection.Row的横向布局,需要注意的是,这里使用了FlexAlign.SpaceBetween进行两个元素的两端对齐功能,这样两个元素的分配是左边一个,右边一个,SpaceBetween的两端对齐功能也是很重要的。

这样,登录页面就实现了,实现后的页面预览效果如下。

登录页面完成后,复制此页面,在项目的pages页面中粘贴成register.ets的注册页,并改变Register.ets代码中struct后面的名字为Register。代码如下图所示。

这里完成了鸿蒙Next云捐助项目中登陆注册页面,后面持续完成首页、捐助页等相关的功能页面,请持续关注。

相关文章:

鸿蒙项目云捐助第四讲鸿蒙App应用的登陆注册页实现

根据app的操作流程可以知道,当启动页启动后,点击启动页中的页面就进入到了登录页。本讲就是针对于登录注册页的实现,实现的界面参考下图。 这里根据这个素材的参考实现鸿蒙Next云捐助的登录页。 一、鸿蒙Next云捐助登录页的实现 在项目中继…...

Windows本地搭建Redis集群(集群模式)

手打不易,如果转摘,请注明出处! 注明原文:https://blog.csdn.net/q258523454/article/details/144477957 前言 Redis版本:redis 5.0.14.1 Windows版本:Windows10 本文只讲集群模式 1. 安装Redis 1.1 …...

使用FastGPT制做一个AI网站日志分析器

越来越的多网站面临每天上千次的扫描和各类攻击,及时发现攻击IP,并有效的屏蔽不良访问成为网站安全的重要保障,这里我们使用AI来完成对网站日志的日常分析。 我们来使用FastGPT来制做一个AI网站日志析器,下面就开始: …...

探索 Echarts 绘图:数据可视化的奇妙之旅

目录 一、Echarts 初印象 二、搭建 Echarts 绘图环境 三、绘制第一个图表:柱状图的诞生 四、图表的美化与定制:让数据更具吸引力 1. 主题切换:一键变换风格 2. 颜色调整:色彩搭配的艺术 3. 标签与提示框:丰富信…...

网络基础(IP和端口)

网络连接的核心-TCP/IP体系结构(IP和端口) 什么是IP地址 1.IP地址是电子设备(计算机)在互联网上的唯一标识 2.用来在互联网中寻找电脑 IP 地址就像是你家的地址一样,不过它是在网络世界里用来找到一台电脑或者其他网…...

UE4与WEB-UI通信

前端HTML代码 <!DOCTYPE html><html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>test web ui</title><script src"https://cdn.b…...

前缀和与差分算法详解

定义 前缀和是一种数据预处理技术&#xff0c;它指的是从数组的第一个元素开始&#xff0c;到当前元素为止的所有元素的和。这种技术可以快速计算任意区间内元素的和&#xff0c;而不需要每次都从头开始累加。 差分则是前缀和的逆运算&#xff0c;它主要用于处理对数组某个区…...

《深入探究:C++ 在多方面对 C 语言实现的优化》

目录 一、C 在 C 上进行的优化二、C 关键字&#xff08;C 98&#xff09;三、C 的输入输出1. cin 和 cout 的使用2. cin、cout 和 scanf()、printf() 的区别 三、命名空间1. 命名空间的使用2. 嵌套命名空间3. 在多个头文件中使用相同的命名空间 四、函数缺省值1. 缺省值的使用2…...

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook&#xff0c;返回一个函数的 memoized的值&#xff1b; 2、如果多次传入的依赖项不变&#xff0c;那么多次定义的时候&#xff0c;返回的值是相同的,防止频繁触发更新&#xff1b; 3、多应用在 父组件为函…...

使用C#和OPenCV实现圆形检测

文章目录 霍夫变换使用 OpenCV 和 C# 实现圆形检测 霍夫变换 在计算机视觉中&#xff0c;圆形检测是一个常见且有用的任务&#xff0c;特别是在物体识别、图像分析和图形处理等领域。OpenCV 是一个强大的开源计算机视觉库&#xff0c;它提供了许多工具来实现不同的图像处理功能…...

评估一套呼叫中心大模型呼入机器人的投入回报比?

评估一套呼叫中心大模型呼入机器人的投入回报比&#xff1f; 原作者&#xff1a;开源呼叫中心FreeIPCC&#xff0c;其Github&#xff1a;https://github.com/lihaiya/freeipcc 评估一套呼叫中心大模型呼入机器人的投入回报比&#xff08;ROI&#xff09;&#xff0c;是一个多…...

十八、Label 和 Selector

Label 是键值对,用来标识 Kubernetes 资源(如 Pod、Node、Service 等)的属性。它们并不直接影响资源的行为,但可以帮助用户快速组织、查询和操作这些资源。标签可以用于选择、过滤和分组。 Label: 标签对 k8s 中各种资源进行分类、分组,如Pod和节点进行分组。通过添加kev…...

实现按键按下(低电平)检测到下降沿

按照流程进行编程 步骤1&#xff1a; 初始化函数 包括时基工作参数配置 输入通道配置 更新中断使能 使能捕获、捕获中断及计数器 HAL_TIM_IC_Init(&ic_handle) //时基参数配置 HAL_TIM_IC_ConfigChannel(&ic_handle,&ic_config,TIM_CHANNEL_2) //输…...

解析 SSM 垃圾分类系统,助力生态平衡

前 言 垃圾分类系统&#xff0c;传统的垃圾分类系统模式还处于线下管理阶段&#xff0c;管理效率极低。随着垃圾分类系统信息的不断增多&#xff0c;传统基于线下管理模式已经无法满足当前用户需求&#xff0c;随着信息化时代的到来。通过该系统的设计&#xff0c;管理员可以管…...

软件工程 设计的复杂性

复杂性代表事件或事物的状态&#xff0c;它们具有多个相互关联的链接和高度复杂的结构。在软件编程中&#xff0c;随着软件设计的实现&#xff0c;元素的数量以及它们之间的相互联系逐渐变得庞大&#xff0c;一下子变得难以理解。 如果不使用复杂性指标和度量&#xff0c;软件…...

Nginx 限制只能白名单 uri 请求的配置

实际生产项目中&#xff0c;大多数时候我们会将后端的 http 接口通过前置 nginx 进行反向代理&#xff0c;对互联网用户提供服务。往往我们后端服务所能提供的接口服务是大于互联网用户侧的实际请求的接口地址数量的&#xff08;例如后端服务一共有100个api接口&#xff0c;经过…...

QT c++ 同时使用sqlite 和mysql数据库的问题

在项目开发中&#xff0c;同时使用了sqlite 和mysql数据库&#xff0c;分开这两部分运行功能都正常&#xff0c;但是一起运行&#xff0c;就异常&#xff0c;sqlite部分不能使用。 现象&#xff1a;出现如下提示 QSqlDatabasePrivate::addDatabase: duplicate connection nam…...

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip

redis集群 服务器更换ip&#xff0c;怎么办&#xff0c;怎么更换redis集群的ip 1、安装redis三主三从集群2、正常状态的redis集群3、更改redis集群服务器的ip 重启服务器 集群会down4、更改redis集群服务器的ip 重启服务器 集群down的原因5、更改redis集群服务器的ip后&#xf…...

【C++习题】19.数组中第K个大的元素

题目&#xff1a;数组中第K个大的元素 链接&#x1f517;&#xff1a;数组中第K个大的元素 题目&#xff1a; 代码&#xff1a; class Solution { public:int findKthLargest(vector<int>& nums, int k) {// 将数组中的元素先放入优先级队列中priority_queue<i…...

JIS-CTF: VulnUpload靶场渗透

JIS-CTF: VulnUpload来自 <https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/> 1,将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 靶机IP地址192.168.23.162&#xff0c;攻击机IP地址192.168.23.140…...

LC滤波器选型避坑指南:为什么你的高频噪声总是滤不干净?

LC滤波器选型避坑指南&#xff1a;为什么你的高频噪声总是滤不干净&#xff1f; 作为硬件工程师&#xff0c;你是否遇到过这样的场景&#xff1a;精心设计的LC滤波器在低频段表现良好&#xff0c;一到高频就"原形毕露"&#xff1f;那些恼人的射频噪声像幽灵一样在电路…...

微信小程序连接大模型:百川2-13B赋能智能客服小程序开发

微信小程序连接大模型&#xff1a;百川2-13B赋能智能客服小程序开发 最近在做一个宠物用品商城的小程序&#xff0c;老板提了个需求&#xff0c;想给用户加个24小时在线的智能客服&#xff0c;能回答一些关于宠物喂养、商品咨询的常见问题。一开始想用传统的规则问答&#xff…...

华为CE12808/S9700交换机istack/CSS堆叠主备倒换实战指南与常见问题解析

1. 华为交换机堆叠技术基础认知 第一次接触华为CE12808和S9700交换机的堆叠功能时&#xff0c;我被istack和CSS这两个专业术语搞得有点懵。后来在实际项目中反复折腾才发现&#xff0c;这其实就是华为针对不同系列交换机设计的两种堆叠技术方案。简单来说&#xff0c;istack主要…...

实战应用:基于快马平台构建支持高并发的医院预约系统后端服务

今天想和大家分享一个实战项目&#xff1a;基于InsCode(快马)平台构建医院预约系统后端服务的经验。这个系统需要处理高并发预约、确保数据一致性&#xff0c;还要对接短信通知等第三方服务&#xff0c;对代码健壮性要求很高。 系统架构设计 医院预约系统的核心是要解决"…...

打造一个产品评论分析AI工具

客户评论是公司可访问的最丰富的产品反馈来源之一。它们揭示了客户在购买后如何实际体验产品&#xff0c;他们喜欢什么&#xff0c;什么让他们沮丧&#xff0c;他们期望什么&#xff0c;以及产品在哪里不足。 这种反馈特别有价值&#xff0c;因为它是自发的。客户自然会谈及对…...

Outfit字体:9种字重+可变字体,解决现代设计中的品牌一致性难题

Outfit字体&#xff1a;9种字重可变字体&#xff0c;解决现代设计中的品牌一致性难题 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts 你在构建数字产品时是否遇到过这样的困境&#xff1a;需要为…...

颠覆级开源模型Wan2.2-TI2V-5B:重新定义AI视频创作

颠覆级开源模型Wan2.2-TI2V-5B&#xff1a;重新定义AI视频创作 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型&#xff0c;基于创新的混合专家架构&#xff08;MoE&#xff09;设计&#xff0c;显著提升了视频生成的质量与效率。该模型支持文本生…...

Windows系统优化神器Winhance:让电脑飞起来的终极指南 [特殊字符]

Windows系统优化神器Winhance&#xff1a;让电脑飞起来的终极指南 &#x1f680; 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/…...

掌控微信数据:从信息丢失到价值挖掘的完整解决方案

掌控微信数据&#xff1a;从信息丢失到价值挖掘的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…...

学Simulink——基于Simulink的单位功率因数(UPF)整流控制策略

目录 手把手教你学Simulink ——基于Simulink的单位功率因数(UPF)整流控制策略 一、问题背景 二、UPF 控制原理 1. 功率因数定义 2. dq 坐标系下的解耦控制 三、系统架构 四、Simulink 建模步骤 第一步:搭建主电路 第二步:实现锁相环(PLL) 第三步:坐标变换 第…...