全屏登录页面

介绍

本例介绍各种应用登录页面。

  1. 全屏登录页面:在主页面点击跳转到全屏登录页后,显示全屏模态页面,全屏模态页面从下方滑出并覆盖整个屏幕,模态页面内容自定义,此处分为默认一键登录方式和其他登录方式。

效果图预览

使用说明
  1. 点击主页面按钮"点击跳转到全屏登录页",显示全屏模态页面。
  2. 不选中"阅读并同意服务协议及个人信息处理规则",点击一键登录,提示"请先阅读并同意协议";选中则提示"登录成功"。
  3. 点击左下方"其他登录方式",页面中显示其他登录方式页面。
  4. 在手机号输入框输入11位数字后,"发送短信验证码"按钮由灰变蓝,选中"阅读并同意服务协议及个人信息处理规则",点击"发送短信验证码"按钮,提示"验证码已发送"。
  5. 点击左上角返回图标回到一键登录页面,再次点击返回图标收起模态页面。

实现思路

本例涉及的关键特性和实现方案如下:

  1. 通过bindContentCover组件绑定全屏模态页面,模态页面内容通过@Builder装饰器自定义。源码参考ModalWindow
Button($r('app.string.full_screen_modal_login_description'))
.fontColor(Color.White)
.borderRadius($r('app.integer.border_radius'))
.type(ButtonType.Normal)
.backgroundColor($r('app.color.grey_2'))
.width($r('app.string.size_full'))
.bindContentCover(this.isPresent, this.loginBuilder)
.onClick(() => {
this.isPresent = true;
})
  1. 模态页面显示后,默认展示一键登录页面。页面需要在一个模态页面中切换,此处使用if进行条件渲染。源码参考DefaultLogin
if (this.isDefaultLogin) {
// 默认一键登录方式
...
} else {
// 其他登录方式
OtherWaysToLogin()
.transition(this.effect)
}
  1. 点击其他登录方式,切换过程涉及到组件的显示和消失,使用transition属性设置出现或消失转场。源码参考DefaultLogin
  OtherWaysToLogin()
.transition(this.effect)
  1. 通过Stack组件,两个页面共用一个返回图标。源码参考DefaultLogin
Stack() {
Image($r('app.media.arrow_back')) // 通过Stack组件,两个页面只实现一个back
.width($r('app.integer.height_twenty_five')).height($r('app.integer.height_twenty_five'))
.margin({ top: $r('app.integer.margin_mid') })
.onClick(() => {
if (this.isDefaultLogin) {
this.isPresentInLoginView = false;
} else {
this.isDefaultLogin = true
}
})
}

高性能知识点

不涉及。

工程结构&模块类型

 modalwindow                                      // har包
|---model
| |---DefaultLogin.ets // 默认一键登录页面
| |---OtherWaysToLogin.ets // 其他登录方式页面
|---ModalWindow.ets // 主页面,提供登录类型选项

模块依赖

不涉及。

参考资料

全屏模态转场(bindContentCover)

组件内转场(transition)

@Builder装饰器

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新VIP学习资源,请移步前往小编:https://qr21.cn/FV7h05

HarmonyOS NEXT应用开发案例——全屏登录页面的更多相关文章

  1. android开发:全屏和退出全屏

    android开发:全屏和退出全屏 from://http://blog.csdn.net/dyllove98/article/details/8831933 2013-04-21 20:31 413 ...

  2. 基于Ascensor.js全屏切换页面插件

    今天给大家分享一款基于Ascensor.js全屏切换页面插件,这款实例 适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...

  3. javascript full screen 全屏显示 页面元素

    javascript full screen 全屏显示 页面元素 要想让页面的某个元素全屏显示,就像在网页上看视频的时候,可以全屏观看一样,该怎么实现呢? 一种最简单的方式,就是动态改变你想要全屏显示 ...

  4. Android开发之全屏显示的两种方法

    1.通过修改清单文件中Theme,实现全屏 <application android:name=".MyApplication" android:allowBackup=&q ...

  5. 基于html5和css3响应式全屏滚动页面切换效果

    分享一款全屏响应式的HTML5和CSS3页面切换效果.这个页面布局效果对于那些页面要求固定100%高度和宽度的网站和APP来说是十分有用的.效果图如下: 在线预览   源码下载 HTML wrappe ...

  6. H5活动全屏滚动页面在安卓智能电视TV调试

    前段时间公司做一个线上活动,在电视上商品促销.产品的要求是每个商品介绍刚好满一屏,按下遥控器向下键可以整屏切换.这种功能如果实在PC端,实现起来非常容易,引用jQuery插件就能实现.但是在安卓智能电 ...

  7. jquery动态背景切换全屏登录插件supersized.js

    下载地址:https://download.csdn.net/download/t101lian/10434198预览: http://www.daimabiji.com/codedemo/1530 ...

  8. 拥抱单页网站! jQuery全屏滚动插件fullPage.js

    不知道从什么时候开始,单页网站就悄悄走进人们的视线,尤其是国外的网站,更是钟爱单页网站.制作一个全屏滚动的效果,然后每个滚动页弄一个好看的背景色,配上一些描述性的文字,大家都喜欢这么弄,仿佛逼格瞬间可 ...

  9. HTML5 全屏 API

    翻译人员: 铁锚 原文日期: 2013年12月23日 翻译日期: 2013年12月29日 原文链接: Fullscreen API 在越来越真实的web应用程序中,JavaScript也变得越来越给力 ...

  10. Ubuntu远程桌面,如何退出全屏

    首先安装Linux 下远程桌面客户端软件-rdesktop 打开终端 执行sudo apt-get install rdesktop 远程连接XP 系统(前提是windows xp 必须打开并且允许远 ...

随机推荐

  1. 【VMware vSAN】全新vSAN 8 ESA快速存储架构配置文件服务并创建文件共享。

    早在2020年,VMware就发布了vSphere7.vSAN7.VCF4等等产品的更新,当时随着云原生的火热,基于容器技术的现代应用程序快速发展,Docker.Kubernetes这些容器平台被广泛 ...

  2. FFmpeg命令行之FFmpeg 采集设备

    在使用 FFmpeg 作为编码器时,可以使用FFmpeg采集本地的音视频采集设备的数据,然后进行编码.封装.传输等操作. 例如,我们可以采集摄像头的图像作为视频,采集麦克风的数据作为音频,然后对采集的 ...

  3. OSI七层协议和TCP/IP五层协议

      OSI七层模型概略: OSI 中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 HTTP,SMTP,FTP,DNS 表示层 数据压缩,解压,数据加密 无 会话层 解 ...

  4. 记录--不定高度展开收起动画 css/js 实现

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 不定高度展开收起动画 最近在做需求的时候,遇见了元素高度展开收起的动画需求,一开始是想到了使用 transition: all .3s; ...

  5. C#的播放资源文件里的音频例子 - 开源研究系列文章

    今天无聊,想起原来开发的待办列表TodoList里还缺个提醒声音,于是就添加了提供声音模块代码.然后想着记录一下,让更多的读者能够复用这个模块代码,于是就有了此博文.这个例子只是用于播放资源文件里的w ...

  6. C++ pieces

    standard lib fmax double fmax (double x, double y); float fmax (float x, float y); long double fmax ...

  7. go两种遍历chan

    go中对通道chan遍历有两种方式一种是用range另一种为for select. package main import ( "fmt" "strings" ...

  8. OpenCvSharp+Yolov5Net+Onnx 完整Demo

    效果 工程 代码 using Microsoft.ML.OnnxRuntime; using OpenCvSharp; using System; using System.Collections.G ...

  9. nuxt环境目录结构

  10. 前端ajax调用后端下载Excel模板流,解决输出乱码等问题

    JavaScript方法function importTemplate() { $.ajax({ url: "/importTemplate", type: "get&q ...