HarmonyOS建立一个漂亮的页面

2023-11-11

1.常用基础组件

基础组件是视图层的基本组成单元,包括Text、Image、TextInput、Button、LoadingProgress等。

(1)Text组件用于在界面上展示一段文本信息,可以包含子组件Span。

(2)Image组件用来渲染展示图片,它可以让界面变得更加丰富多彩。只需要给Image组件设置图片地址、宽和高,图片就能加载出来,

(3)TextInput组件用于输入单行文本,响应输入事件。TextInput的使用也非常广泛,例如应用登录账号密码、发送消息等。和Text组件一样,TextInput组件也支持文本样式设置,下面的示例代码实现了一个简单的输入框:

(4)Button组件主要用来响应点击操作,可以包含子组件。

2.构建简单的页面

线性布局容器表示按照垂直方向或者水平方向排列子组件的容器,ArkTS提供了Column和Row容器来实现线性布局。

  • Column表示沿垂直方向布局的容器。

  • Row表示沿水平方向布局的容器。

主轴和交叉轴的概念

在布局容器中,默认存在两根轴,分别是主轴和交叉轴,这两个轴始终是相互垂直的。不同的容器中主轴的方向不一样的。

主轴:在Column容器中的子组件是按照从上到下的垂直方向布局的,其主轴的方向是垂直方向;在Row容器中的组件是按照从左到右的水平方向布局的,其主轴的方向是水平方向。

交叉轴:与主轴垂直相交的轴线,如果主轴是垂直方向,则交叉轴就是水平方向;如果主轴是水平方向,则交叉轴是垂直方向。

在Column容器里,依次是Image、Text、TextInput、Button等基础组件,还有两组组件是使用Row容器组件来实现的,主要代码如下:

@Entry

@Component

export struct LoginPage {

build() {

Column() {

Image($r('app.media.logo'))

...

Text($r('app.string.login_page'))

...

Text($r('app.string.login_more'))

...

TextInput({ placeholder: $r('app.string.account') })

...

TextInput({ placeholder: $r('app.string.password') })

...

Row() {

Text($r(…))

Text($r(…))

}

Button($r('app.string.login'), { type: ButtonType.Capsule, stateEffect: true })

...

Row() {

this.imageButton($r(…))

this.imageButton($r(…))

this.imageButton($r(…))

}

...

}

...

}

}

我们详细看一下使用Row容器的两组组件。

两个文本组件展示的内容是按水平方向布局的,使用两端对齐的方式。这里我们使用Row容器组件,并且需要配置主轴上(水平方向)的对齐格式justifyContent为FlexAlign.SpaceBetween(两端对齐)。

Row() {

Text($r(…))

Text($r(…))

}

.justifyContent(FlexAlign.SpaceBetween)

.width('100%')

其他登录方式的三个按钮也是按水平方向布局的,同样使用Row容器组件。这里按钮的间距是一致的,我们可以通过配置可选参数space来设置按钮间距,使子组件间距一致。

Row({ space: CommonConstants.LOGIN_METHODS_SPACE }) {

this.imageButton($r(…))

this.imageButton($r(…))

this.imageButton($r(…))

}

3.常用组件与布局

  • Text:显示一段文本的组件。

  • Image:图片组件,支持本地图片和网络图片的渲染展示。

  • TextInput:可以输入单行文本并支持响应输入事件的组件。

  • Button:按钮组件,可快速创建不同样式的按钮。

  • Flex:应用弹性方式布局子组件的容器组件。

  • Column:沿垂直方向布局的容器。

  • Row:沿水平方向布局容器。

  • List:列表包含一系列相同宽度的列表项。适合连续、多行呈现同类数据,例如图片和文本。

  • Swiper:滑动容器,提供切换子组件显示的能力。

  • Grid:网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HarmonyOS建立一个漂亮的页面 的相关文章

  • 代码随想录算法训练营第一天

    Leetcode704 二分查找 题目链接 关键词 二分查找 循环不变量 区间 问题思路 二分查找的应用 关键在于循环过程中区间的维护 记住循环不变量原则 在这个问题中循环不变量是区间的定义 注意左闭右开和左开右闭的区别 class Sol
  • vue实现鼠标划入划出判断是否显示内容

    如图所示我想实现当鼠标划入时右上角的设置图标显示 鼠标移出设置图标在隐藏 可以通过vue的 mouseenter和 mouseleave事件来实现
  • 【MySQL】表的基本操作

    1 数据类型 1 1 数值类型 数据类型 大小 说明 bit M M指定位数 默认为1 二进制 M范围从1到64 存储数值范围从0到2 M 1 tinyint 1字节 smallint 2字节 int 4字节 bigint 8字节 floa
  • python之浅拷贝、深拷贝

    什么是浅拷贝 深拷贝 理论来自python基础教程 在 Python 中 对象赋值实际上是对象的引用 当创建一个对象 然后把它赋给另一个变量的时候 Python 并没有拷贝这个对象 而只是拷贝了这个对象的引用 我们称之为浅拷贝 在 Pyth
  • ubuntu配置环境重要网址

    ping不通百度且报错 ping www baidu com Temporary failure in name resolution 的解决方案 https blog csdn net yulei qq article details 1
  • Python-import导入上级目录文件

    假设有如下目录结构 dir0 file1 py file2 py dir3 file3 py dir4 file4 py dir0文件夹下有file1 py file2 py两个文件和dir3 dir4两个子文件夹 dir3中有file3
  • Java代码判断当前操作系统是Windows或Linux或MacOS

    package com magic system public class SystemUtils 判断操作系统是否是 Windows return true 操作系统是 Windows false 其它操作系统 public static
  • 使用python对银行信息管理系统的简单实现

    一 首先是用户属性的类 class account object 储存用户信息的类 def init self id1 name tel money self id id1 账户 self name name 姓名 self tel tel
  • win11共享打印机无法连接怎么办

    很多小伙伴都将电脑更新升级成Win11系统 当我们使用多台电脑却只有一台打印机时 就需要共享打印机却出现了Win11共享打印机无法连接的情况 遇到这种问题应该怎么解决呢 下面小编就给大家详细介绍一下Win11共享打印机无法连接的解决方法 大
  • Anaconda + jupyter notebook + jupyter lab环境配置

    1 更换源 1 1 pip源 pip config set global index url https pypi tuna tsinghua edu cn simple pip config set install trusted hos
  • MySQL备份与恢复

    2 3 1备份MySQL数据库 在MySQL的bin目录下 有一个名为mysqldump的可执行文件 将该bin目录添加到环境变量中 可以利用它在 命令提示符 环境下来备份数据库 语法格式如下 mysqldump opt 要备份的数据库名
  • C4D和3dmax有什么区别?

    很多小伙伴都知道3d Max和C4D都是一款三维制作软件 可是 很少见到游戏公司使用C4D软件制作模型呢 反而设计师们用的最多的就是3dmax 而C4D往往用于广告行业 那么C4D和3d max的区别是什么呢 一 性质不同 1 3Dmax
  • 下面是两种解决Redis击穿问题的方法,并给出相应的Java代码实现。

    Redis击穿问题指的是当一个key在缓存中过期时 恰好有大量并发请求访问该key 导致请求直接打到数据库 引起数据库压力过大 甚至宕机 方法一 使用互斥锁 在访问缓存之前 首先获取一个互斥锁 防止多个请求同时访问数据库 只有一个请求可以访
  • STM32 HAL——GPIO

    HAL的代码规范建议 以下内容是我自己参照HAL做的总结 如果公司有固定的编码规范 就跟公司保持一致 如果没有 那就推荐和所用库保持一致 注意 因人而异 并不具有普遍适用性 HAL库有如下代码规范 1 目录名除了专有词汇外 统一是单词首字母
  • 数据类型分类

    分为四种类型
  • Java高并发处理方案

    java高并发 如何解决 什么方式解决 一 什么是高并发 二 高并发解决思路 三 高并发解决方案 一 什么是高并发 1 1 高并发 High Concurrency 是互联网分布式系统架构设计中必须考虑的因素之一 它通常是指 通过设计保证系
  • SCSI、ISCSI、iSER、NVMe、NVMe-oF、NVMe-oF over RDMA

    在存储系统中 上层协议可以泛指 指令 也就是比如 读出从某某开始的多少长度的扇区 指令包含三大关键信息 1 操作码 Opreation Code 或称为OP code 比如write read等等 2 起始地址 从哪里开始读 如果是文件的话
  • JSON介绍及代码示例

    了解json JSON是什么 JSON是JavaScript Object Notation的缩写 它是一种数据交换格式 在JSON出现之前 大家一直用XML来传递数据 因为XML是一种纯文本格式 所以它适合在网络上交换数据 XML本身不算
  • mysql之操作数据库的DDL语句

    1 退出mysql exit 或 quit 2 显示当前所有数据库 show databases 3 创建数据库 create database 数据库名 4 删除库文件 drop database 数据库名 5 切换正在使用的数据库 us
  • 深度学习目标跟踪算法

    ECCV 2022 OSTrack Joint Feature Learning and Relation Modeling for Tracking https blog csdn net qq 41442511 article deta

随机推荐

  • 扩散模型实战(二):扩散模型的发展

    推荐阅读列表 扩散模型实战 一 基本原理介绍 扩散模型从最初的简单图像生成模型 逐步发展到替代原有的图像生成模型 直到如今开启 AI 作画的时代 发展速度可谓惊人 下面介绍一下2D图像生成相关的扩散模型的发展历程 具体如下 开始扩散 基础扩
  • 一个B类地址,它的子网掩码为255.255.224.0,能划分多少个子网

    From http hi baidu com hzmdesky blog item ec97fc1bc9ce8f148718bf57 html cmtid ce50e26e27e192d481cb4ade 一个B类地址 它的子网掩码为255
  • 学习笔记-Matlab算法篇-图像处理

    图像处理 01图像基本处理 Matlab读取图片 gt gt mat imread pic1 png gt gt imshow mat gt gt size mat ans 906 947 3 图像转换函数 gray2ind intensi
  • 您也使用托管C++吗?

    转向 NET后 手头上往往仍有旧的模块要重用 也许这些模块是Delphi写的 也许是C C 写的 或者是其它编程语言 为了能把它们移植到 NET下 或者是在 NET中调用 To be or not to be that is a quest
  • 再次分析-提出 Spring AOP-真正的AOP

    前言 本篇的Spring AOP系类文章第三篇因为我们前面采用原始的方式实现了一次所有本篇我们来详细Spring AOP的的全面使用 个人主页 尘觉主页 个人简介 大家好 我是尘觉 希望我的文章可以帮助到大家 您的满意是我的动力 在csdn
  • 机器学习实战:逻辑回归(3)-Sklearn实现病马死亡率预测

    from sklearn linear model import LogisticRegression 函数说明 使用Sklearn构建Logistic回归分类器 Parameters 无 Returns 无 def colicSklear
  • JMeter压测数据实时监控

    目录 1 1 Influxdb关键特性 1 2 Influxdb安装 windows 2 Chronograf 2 1 Chronograf特性 2 2 Chronograf安装 windows 3 Grafana 3 1 Grafana特
  • 数学建模及其算法概述

    一 数学模型的分类 1 按模型的数学方法分 几何模型 图论模型 微分方程模型 概率模型 最优控制模型 规划论模型 马氏链模型等 2 按模型的特征分 静态模型和动态模型 确定性模型和随机模型 离散模型和连续性模型 线性模型和非线性模型等 3
  • shell排序(C++实例)

    交换排序由于比较相邻元素 因此平均时间代码为 n2 shell排序也称为缩小增量排序 利用插入排序的最佳时间特性 将待排序序列分成若干子序列 然后分别对子序列排序 最后将子序列组合起来 如下图所示 算法的实现 include stdio h
  • A Survey on Time-Series Pre-Trained Models

    本文是LLM系列的文章 针对 A Survey on Time Series Pre Trained Models 的翻译 时间序列预训练模型综述 摘要 1 引言 2 背景 2 1 时间序列挖掘任务 2 1 1 时间序列分类 2 1 2 时
  • 数据结构回顾复习总结(一)(时间复杂度、空间复杂度)

    一 复杂度 学习数据结构的意义在于可以使我们写的程序更加的高效率 而在写程序的时候离不开复杂度的考虑 下面先从2个循环小题目开始 了解为什么要考虑复杂度的概念 例题1 给定n个元素 求其中奇数的个数 这个题目比较简单 我就这就给出代码了 其
  • R语言大作业(四):上海市、东京 1997-2018 年GDP值分析

    R语言大作业 四 上海市 东京 1997 2018 年GDP值分析 一 实验要求 二 实验准备 三 数据分析 1 箱线图绘制 2 回归模型 1 确定变量间的关系 2 其次确定年份和东京GDP值 3 有关于相关系数的计算与检验 4 回归分析
  • 使用决策树和深度学习进行汽车质量预测

    目录 1 引言 2 数据准备和特征工程 3 使用决策树进行汽车质量预测
  • 通信系统软件测试,通信系统软件测试策略及其自动化

    摘要 通信技术的发展使软件占据了通信系统的主要地位 通信软件的测试是提高通信系统软件质量的必由之路 作为现代通信系统的发展热点 软交换系统直接体现了下一代网络的发展方向 是研究通信系统软件测试方法的切入点 介绍了对软件的度量和对测试过程的度
  • 毕业设计-基于微信小程序的校园失物招领平台的研究

    博主介绍 程序员徐师兄 7年大厂程序员经历 全网粉丝30W csdn博客专家 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业项目实战 文章目录 1 简介 2 技术栈 3系统可行性分析 3 1需求调研 4 系统设
  • 三菱PLC 闪烁动作 ST语言

    闪烁动作 输入X006为ON时 定时器T2的触点每隔5秒瞬间动作一次 T2的触点 每次ON时都使输出Y007交替ON OFF OUT T X006 AND NOT TS2 TC2 K50 ALT X006 AND TS2 Y007
  • 【架构】从零开始搭建创业公司后台技术栈

    说到后台技术栈 脑海中是不是浮现的是这样一幅图 有点眼晕 以下只是我们会用到的一些语言的合集 而且只是语言层面的一部分 就整个后台技术栈来说 这只是一个开始 从语言开始 还有很多很多的内容 今天要说的后台是大后台的概念 放在服务器上的东西都
  • Matlab——绘图(二维/三维/隐函数)

    本篇博客是对educoder上相关题目 知识的总结 目录 前言 一 二维图形的绘制 1 楔子 2 绘图函数 plot函数 第一种调用方法 第二种调用方法 第三种调用方式 3 双纵坐标绘图函数 plotyy函数 4 绘制二维图形其他函数 5
  • mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column...

    在sql命令行中输入select sql mode 这时我们能够看到自己的sql mode配置 其中如果有ONLY FULL GROUP BY 那它就是group by查询报错的罪魁祸首了 然后就是mac系统中修改mysql的配置 针对ma
  • HarmonyOS建立一个漂亮的页面

    1 常用基础组件 基础组件是视图层的基本组成单元 包括Text Image TextInput Button LoadingProgress等 1 Text组件用于在界面上展示一段文本信息 可以包含子组件Span 2 Image组件用来渲染