当前位置: 首页 > 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…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...