鸿蒙登录页面及页面跳转的设计

目录

  • 任务目标
  • 任务分析
  • 任务实施
    • 1.新建工程项目HMLogin
    • 2.设计登录页面Index.visual
    • 3.设计第二个页面SecondPage
    • 4.修改Index.ets代码
    • 5.修改SecondPage.ets代码
    • 6.运行工程

任务目标

设计一个简单的登录页面,要求可以将第一页的登录信息,传递到第二个页面,界面如图1所示。
图1 鸿蒙登录界面图

图1 鸿蒙登录界面图

任务分析

本任务主要考察鸿蒙应用界面设计及界面间的数据传递。在不熟练的情况下,可以使用DevEco Studio的Super Visual功能进行设计,设计完成后再修改ArkTS代码。

任务实施

1.新建工程项目HMLogin

如图2所示,修改工程名、包名,打开Super Visual开关,单击Finish。
鸿蒙登录界面配置工程窗口

图2 鸿蒙登录界面配置工程窗口

2.设计登录页面Index.visual

从Components区将两个TextInput,一个Button用鼠标拖拽到界面上,如图10-33所示。依次选中各个控件,修改Properties。其中“账号”TextInput的Placeholder属性修改为“请输入账号”,magrinTop修改改为20vp;“密码”TextInput的Placeholder属性修改为“请输入密码”,magrinTop修改为20vp;“登录”Button的Label属性修改为“登录”,FontSize修改为32fp。需要注意的是有些属性在Super Visual中无法修改,将在ArkTS代码中进行修改。修改完后的界面如图10-34所示,单击右上方的转换图标 ,将其转为ArkTS代码。
Index.visual设计窗口

图3 Index.visual设计窗口

界面设计完成效果图

图4 界面设计完成效果图

3.设计第二个页面SecondPage

右击entry/src/main/ets/pages,New→Visual→Page。在弹出的窗口中修改Visual name为SecondPage,单击Finish,如图10-35、图10-36所示。
新建Super Visual界面

图5 新建Super Visual界面

配置Visual Page窗口

图6 配置Visual Page窗口

使用和上一步骤相同的方法,添加一个Text和一个Button,修改其属性,修改后效果如图10-37所示,单击转换图标 ,生成ArkTS代码。
第二个界面效果图

图7 第二个界面效果图

4.修改Index.ets代码

在Index.ets代码中,首先添加TextInput输入获取逻辑,实现onChange()方法,在该方法中存储修改的信息;其次,添加Button单击事件,实现onClick()方法,在该方法中使用router.pushUrl()方法跳转到第二个页面,同时传递信息,代码如下:

import router from '@ohos.router'
@Entry
@Component
struct Index {@State message: string = '登录'@State userName: string = ''@State password: string = ''build() {Row() {Column() {Text(this.message).fontSize(30).fontWeight(FontWeight.Bold)TextInput({ placeholder:"请输入账号" }).width("100%").height("48vp").margin({ left: '50vp',right:'50vp',top:"30vp",bottom:"30vp"} ).placeholderColor("#99182431").placeholderFont({ size: "16fp"}).fontSize("16fp").padding({ left: "0vp" }).border({width: { bottom: "0vp" },color: "#33000000",radius: "10vp"}).onChange((value: string) => {this.userName = value})TextInput({ placeholder:"请输入密码" }).width("100%").height("48vp").margin({ left: '50vp',right:'50vp',bottom:"30vp"} ).placeholderColor("#99182431").placeholderFont({ size: "16fp"}).fontSize("16fp").padding({ left: "0vp" }).type(InputType.Password).border({color: "#33000000",radius: "10vp"}).onChange((value: string) => {this.password = value})// 添加按钮,触发跳转Button('登录').fontSize(20).onClick(() => {router.pushUrl({url: 'pages/SecondPage',params: {src: this.userName+':'+this.password,}})})}.width('100%')}.height('100%').backgroundColor("#05000000")}
}

5.修改SecondPage.ets代码

在SecondPage.ets代码中,首先将前一页面的信息取出,并显示在Text上,使用router.getParams()方法获取前一页面的信息;添加“返回”Button的逻辑,实现方法和前一步骤类似,关键代码如下:

import router from '@ohos.router'
@Entry
@Component
struct SecondPage {@State message: string = '第二个页面'@State src: string = router.getParams()?.['src']build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)// 显示传参的内容Text(this.src).fontSize(30)// 添加按钮,触发返回Button('返回').fontSize(20).onClick(() => {router.back()})}.width('100%')}.height('100%').backgroundColor("#05000000")}
}

Index.ets代码和SecondPage.ets代码中还修改了this.message,设置了整体布局的backgroundColor,本任务完整项目代码请查看本书资源。

6.运行工程

测试运行效果

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

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

相关文章

Cesium 在加载 3dTiles 如何如何获取ID

文章目录 问题分析问题 加载的 3dTiles 打印content.getFeature(i)出来后如图所示,想获取到id值 分析 var tileset = mapLayer.init3dTileLayer({url:it.url,maximumMemoryUsage: it.maximumMemoryUsage,

关于RAG优化的几个小技巧

一、背景说明 RAG技术为大型语言模型(LLMs)提供了从数据源检索到的信息,以支撑其生成的答案。简而言之,RAG就是搜索加上LLM提示,你让模型在提供的信息上下文中回答问题。查询和检索到的上下文都被注入到发送给LLM的提…

求生之路史低入手 教你怎么使用求生之路创意工坊提高体验性

求生之路是一款抵御丧尸的第一人称射击游戏,四名幸存者联机配合,在现代的城市中,击败各种丧尸还有强大的变种人BOSS,虽然是十几年前的游戏,但是毫不夸张的说,游戏丝毫不过时,目前steam夏促&…

Redis持久化(RDB AOF)

Redis持久化 MySQL的事务,有四个比较核心的特性: 原子性一致性持久性(和持久化一样),将数据存储在硬盘上,重启主机之后数据仍然存在隔离性 redis是一个内存数据库,把数据存储在内存中&#xff0…

算法题 — 接雨水

给定 n 给非负整数,表示每个宽度为 1 的柱子的高度图,计算按照此排列的柱子,下雨之后能能接到多少雨水。 输入:height [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1] 输出:6 解释:上面是由数组 [0, 1, 0, 2, 1,…

布尔运算00

题目链接 布尔运算 题目描述 注意点 运算符的数量不超过 19 个布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成算出有几种可使该表达式得出 result 值的括号方法 解答思路 可以使用动态规划根据左右两侧区间不同结果相应组合数量计算得出当前…

国产Cortex-A55人工智能教学实验箱_基于Python机械臂跳舞实验案例分享

一、实验目的 本实验通过TL3568-PlusTEB教学实验箱修改机械臂不同舵机的角度,增加延迟时间,从而做到机械臂跳舞的效果。 二、实验原理 ROS(机器人操作系统) ROS(机器人操作系统),是专为机器人…

@ComponentScan注解在Spring的作用

ComponentScan注解的作用是什么? 告知Spring扫描那些包下的类,可以配置includeFilters,excludeFilters,过滤某些类,更多内容可以具体看下此注解文件。 Spring是如何通过这个注解将类注入到Ioc容器中的? 请…

[linux]sed命令基础入门详解

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这…

生命在于折腾——Macbook虚拟机开启360核晶

首先启动PD虚拟机,打开360,发现提示如下: 此时将虚拟机关机。 打开该虚拟机设置: 将虚拟机监控程序改为Parallels,并启动nested虚拟化。 改好后截图如下: 保存设置,开机 此时就可以开启了…

硬件实用技巧:摄像头常用的输出协议类型和输出接口类型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140042485 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

docker 多网卡指定网卡出网

前言 宿主机中有多个网卡 ens160 192.168.4.23/20 内网通信用 ens192 10.31.116.128/24 出公网访问-1 ens193 10.31.116.128/24 出公网访问-2 现在需要不同容器中不同出网访问,举例 容器1 192.168.0.1/20 网段走宿主机 ens160网卡,否则全部走ens192 网…

太速科技-FMC144 -八路 250MSPS 14bit AD FMC子卡

FMC144 -八路 250MSPS 14bit AD FMC子卡 一、板卡概述   FMC144是一款具有8通道模数转换器(ADC)的FMC卡,具有14bit分辨率,最大采样速率达250Msps。时钟配置芯片为AD9516-1,可由板载10MHz时钟提供参考,也可…

STM32人体心电采集系统

资料下载地址:STM32人体心电采集系统 1、项目功能介绍 此项目主要实现了以STM32为核心的人体心电采集系统软硬件的设计。软件设计过程是在STM32上移植的uCGUI做图形界面,并如实显示采集到的心电波形信号,有SD卡存储和USB数据传输功能。 2、实…

Ubuntu20.04安装Prometheus监控系统

环境准备: 服务器名称内网IP公网IPPrometheus服务器192.168.0.23047.119.21.167Grafana服务器192.168.0.23147.119.22.8被监控服务器192.168.0.23247.119.22.82 更改主机名方便辨认 hostnamectl set-hostname prometheus hostnamectl set-hostname grafana hostn…

SAS:quote函数合dhms函数

quote函数 dhms函数 中间停药时的给药日期确定

stm32 No traget connected/debug识别不到串口的问题

关于stm32串口识别不到,第一步先确定是否线接错(stlink与stm32接口对应),如果确认接线没有问题的话,可以使用以下方法,成功率较高。 首先将stlink的boot0置1,就是把跳线帽换到高电平这一侧&…

投标书制作

一、投标书的基本要求l . 帮助与你的标书读者沟通。从这个角度上来讲,标书是一篇针对用户需求的论文,逻辑结构和语言一定要清晰、可读。考虑到评标专家一般都具有较好的学术经验,其中很多还是教授、博导,投标的语言要针对读者的阅…

国产固态光耦在工业照明领域的应用

工业照明作为工厂和生产设施中不可或缺的一部分,其效率和安全性直接影响到生产运行的顺畅性和员工的工作环境。国产固态光耦作为现代工业照明技术的重要组成部分,在提升照明系统效率和安全性方面发挥着关键作用。本文将深入探讨国产固态光耦在工业照明领…

中科驭数第三代DPU芯片K2-Pro,专为数据中心打造的“六边形战士”

近日,中科驭数重磅发布第三代DPU芯片K2-Pro,是国内首颗面向量产的全功能芯片! K2-Pro采用自主研发的Kernel Processing Unit架构,集网络、存储、安全及计算等多业务卸载功能于一体,包处理速率翻倍至80Mpps&#xff0c…