纯血鸿蒙APP实战开发——全屏登录页面

介绍

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

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

效果图预览

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

实现思路

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

  1. 通过 bindContentCover 组件绑定全屏模态页面,模态页面内容通过 @Builder装饰器 自定义。
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进行条件渲染。
if (this.isDefaultLogin) {
  // 默认一键登录方式
  ...
} else {
  // 其他登录方式
  OtherWaysToLogin()
    .transition(this.effect)
}
  1. 点击其他登录方式,切换过程涉及到组件的显示和消失,使用 transition 属性设置出现或消失转场。
  OtherWaysToLogin()
    .transition(this.effect)
  1. 通过Stack组件,两个页面共用一个返回图标。
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                              // 主页面,提供登录类型选项

模块依赖

不涉及。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙

  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习知识点,请移步前往小编:https://gitee.com/MNxiaona/733GH

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值