鸿蒙开发(九)UI实战 - 线性布局实现登录界面

这篇具有很好参考价值的文章主要介绍了鸿蒙开发(九)UI实战 - 线性布局实现登录界面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    前面我们花了很多章去讲述鸿蒙开发的UI,包括布局和控件等。本篇,我们综合使用布局和控件,完成一个简单的用户登录界面。

一、布局选择

    简单回忆下我们掌握的几种布局,线性布局的控件横向或纵向线性排列,非常适合实现登录界面,因此我们使用线性布局来实现登录界面。

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为

二、登录界面实现 

1、创建UIAbility

    创建LoginAbility,并且设置为Launcher ability:

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为

    可以看到,module.json5里面已经自动加上了skills:xxx.system.home,入口Ability只能有一个,记得把默认的EntryAbility的skills删掉: 

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为

2、创建页面

    推荐使用New -Page的方式创建页面,这样会在main_pages自动添加页面名称,防止出现页面加载空白的case(我之前的demo就直接复制的Index,然后main_pages没增加页面信息,加载白屏。。。):

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为

 3、实现登录页面UI代码

    如下代码实现了一个简单的登录界面,这是迄今为止写的最长的一个页面了,不过代码仍然比较简单,也比较好理解:

import hilog from '@ohos.hilog';
import common from '@ohos.app.ability.common';

@Entry
@Component
struct Login {
  @State passport: string = '';
  @State password: string = '';
  private context = getContext(this) as common.UIAbilityContext

  build() {
    Column({ space: 5 }) {
      Row() {
        Text('账号:')
        TextInput({ placeholder: '请输入账号' })
          .width('60%')
          .height(40)
          .onChange((data: string) => {
            this.passport = data
          })
      }

      Row() {
        Text('密码:')
        TextInput({ placeholder: '请输入密码' })
          .width('60%')
          .height(40)
          .onChange((data: string) => {
            this.password = data
          })
      }

      Button('登录')
        .width('50%')
        .height(40)
        .margin({ top: 20 })
        .onClick(() => {
          this.doLogin()
        })
    }.width('100%').height('80%').justifyContent(FlexAlign.Center)
  }

  doLogin() {
    if (this.password || this.password == '') {
      hilog.info(0x0000, 'Login', 'password is null');
      return
    }
    if (this.passport || this.passport == '') {
      hilog.info(0x0000, 'Login', 'passport is null');
      return
    }
    hilog.info(0x0000, 'Login', 'passport:', '%{public}s', this.passport);
    hilog.info(0x0000, 'Login', 'password:', '%{public}s', this.password);
    // 触发login事件
    this.context.eventHub.emit('login')
  }
}

预览效果如下:

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为

     本篇,使用线性布局实现了一个简单的用户登录界面。后面,我还会结合各种各样的场景,去进行更多的UI实战。另外,在这里也提醒一下初学者,布局或控件的API没必要死记硬背,用到哪个布局或控件直接点进源码去看看,多看看源码也就记住了。

    最后,分享一款免费看热门电影和电视剧的app,仅限Android:

.请用线性布局中的横向布局实现界面,鸿蒙,harmonyos,华为文章来源地址https://www.toymoban.com/news/detail-859749.html

到了这里,关于鸿蒙开发(九)UI实战 - 线性布局实现登录界面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙开发-UI-布局

    鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 鸿蒙开发-UI-组件-状态管理 鸿蒙开发-UI-应用-状态管理 鸿蒙开发-UI-渲染控制 文章目录 前言 一、布局概述 1.布局结构 2.布局元素组成 3.布局分类 4.布

    2024年01月16日
    浏览(42)
  • HarmonyOS鸿蒙开发指南:构建用户界面 构建布局

    目录 布局说明 添加标题行和文本区域 添加图片区域 添加留言区域 添加容器

    2024年02月22日
    浏览(55)
  • 鸿蒙开发笔记(十四): UI开发概述及布局概述

    方舟开发框架(简称ArkUI)为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。 针对不同的应用场景及技术背景,方舟开发框架提供了两种开发

    2024年01月19日
    浏览(42)
  • 【学习笔记】鸿蒙UI开发-布局(ArkTs)

    GitHub:LearnHos 码云:LearnHos 拉伸能力 定义 当父容器的尺寸发生变化时,增加或减少的空间 全部分配 给父容器内的 指定子组件 场景1:自动填充 实现:容器组件-Row + 基础组件Blank 场景2:按指定的比例拉伸或收缩 拉伸 当父容器在主轴方向上的尺寸 大于 所有子组件的尺寸之

    2024年02月05日
    浏览(47)
  • Android开发之实现简单的用户登录及登陆界面的UI设计(五)

    登陆界面的UI设计 编写Java代码,进行简单的用户账号和密码判断

    2024年02月11日
    浏览(50)
  • android界面开发详解,Unity实战问题--Loading更好的实现方式,714页PDF的鸿蒙学习笔记,

    最后进度条的效果显示如下: 进度条并没有连续的显示加载的进度,而是停顿一下切换一个数字,再停顿一下切换一个数子,最后在没有显示100%就情况下就切换到主场景了。究其原因在于 Application.LoadLevelAsync 并不是真正的后台加载,它在每一帧加载一些游戏资源,并给出一个

    2024年04月26日
    浏览(38)
  • HarmonyOS鸿蒙基于Java开发: Java UI 自定义布局

    当Java UI框架提供的布局无法满足需求时,可以创建自定义布局,根据需求自定义布局规则。 Component类相关接口  表1  Component类相关接口 接口名称 作用 setEstimateSizeListener 设置测量组件的侦听器 setEstimatedSize 设置测量的宽度和高度 onEstimateSize 测量组件的大小以确定宽度和高度

    2024年02月19日
    浏览(55)
  • HarmonyOS鸿蒙基于Java开发: Java UI 常用布局 DependentLayout

    目录 支持的XML属性 排列方式 相对于同级组件的对齐 相对于父级组件的对齐 场景示例 DependentLayout是Java UI框架里的一种常见布局。与DirectionalLayout相比,拥有更多的排布方式,每个组件可以指定相对于其他同级元素的位置,或者指定相对于父组件的位置。 图1  DependentLayout示

    2024年02月21日
    浏览(51)
  • Android UI 开发·界面布局开发·案例分析

    目录 ​编辑 1.  线性布局(LinearLayout) 2.  相对布局(RelativeLayout) 3.  表格布局(TableLayout) 4.  帧布局(FrameLayout) 5.  网格布局(GridLayout) 6.  绝对布局(AbsoluteLayout) 补充内容:关于selector状态选择器         LinearLayout线性布局是一种最简单的布局方式,它有垂

    2024年02月03日
    浏览(41)
  • HarmonyOS鸿蒙开发指南:UI开发 基于ArkTS的声明式开发范式 声明式UI开发实例 页面布局与连接

    目录 构建食物数据模型 构建食物列表List布局 构建食物分类Grid布局  页面跳转与数据传递

    2024年02月03日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包