【HarmonyOS开发】超详细的ArkTS入门

安装DevEco Studio和新建项目就不多说了,可以移步官网

就可以把他们拆成这几个部分了,如果看不懂可以暂时忽略下面冒号后面的内容

  • 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。
  • UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。
  • 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。
  • 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。
  • 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。
  • 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。

解释这些东西一大堆,对新手来说,理解有那么一点不容易,只要记住这个大概的格式,就像这个样子

@Entry
@Component
struct Index {
//放你写的数据build() {//放你写的页面代码 }}

3.布局

下面的内容有些复杂,新手看不懂可以暂时只看线性布局,这个是我们最常用的一种布局方式

1.线性布局(Row、Column)

  • 线性布局(Row、Column):如果布局内子元素为复数个,且能够以某种方式线性排列时优先考虑此布局。

2.层叠布局(Stack)

  • 层叠布局(Stack):组件需要有堆叠效果时优先考虑此布局,层叠布局的堆叠效果不会占用或影响其他同容器内子组件的布局空间。例如Panel作为子组件弹出时将其他组件覆盖更为合理,则优先考虑在外层使用堆叠布局。

3.弹性布局(Flex)

  • 弹性布局(Flex):弹性布局是与线性布局类似的布局方式。区别在于弹性布局默认能够使子组件压缩或拉伸。在子组件需要计算拉伸或压缩比例时优先使用此布局,可使得多个容器内子组件能有更好的视觉上的填充容器效果。

4.相对布局(RelativeContainer)

  • 相对布局(RelativeContainer):相对布局是在二维空间中的布局方式,不需要遵循线性布局的规则,布局方式更为自由。通过在子组件上设置锚点规则(AlignRules)使子组件能够将自己在横轴、纵轴中的位置与容器或容器内其他子组件的位置对齐。设置的锚点规则可以天然支持子元素压缩、拉伸,堆叠或形成多行效果。在页面元素分布复杂或通过线性布局会使容器嵌套层数过深时推荐使用。

5.栅格布局(GridRow、GridCol)

  • 栅格布局(GridRow、GridCol):栅格是多设备场景下通用的辅助定位工具,通过将空间分割为有规律的栅格。栅格不同于网格布局固定的空间划分,可以实现不同设备下不同的布局,空间划分更随心所欲,从而显著降低适配不同屏幕尺寸的设计及开发成本,使得整体设计和开发流程更有秩序和节奏感,同时也保证多设备上应用显示的协调性和一致性,提升用户体验。推荐内容相同但布局不同时使用。

6.媒体查询(@ohos.mediaquery)

  • 媒体查询(@ohos.mediaquery):媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。例如根据设备和应用的不同属性信息设计不同的布局,以及屏幕发生动态改变时更新应用的页面布局。

7.列表(List)

  • 列表(List):使用列表可以轻松高效地显示结构化、可滚动的信息。在ArkUI中,列表具有垂直和水平布局能力和自适应交叉轴方向上排列个数的布局能力,超出屏幕时可以滚动。列表适合用于呈现同类数据类型或数据类型集,例如图片和文本。

8.网格(Grid)

  • 网格(Grid):网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局。网格布局可以控制元素所占的网格数量、设置子组件横跨几行或者几列,当网格容器尺寸发生变化时,所有子组件以及间距等比例调整。推荐在需要按照固定比例或者均匀分配空间的布局场景下使用,例如计算器、相册、日历等。

9.轮播(Swiper)

  • 轮播(Swiper):轮播组件通常用于实现广告轮播、图片预览、可滚动应用等。

使用

暂时看不懂也没关系,我们暂时只看用的最多的线性布局

线性布局分为两种,

一种是竖直方向的线性布局Column

另一种是水平方向的线性布局Row

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

我们把他们加入我们写的代码中

@Entry
@Componentstruct Index {
//放你写的数据build() {Row() {      Column() {     //放你写的组件     }   }  }}

这样页面布局就写好了,下面我们要开始在页面布局中写组件了

4.组件

下面我们就在我们的页面中添加组件

常见的组件有

  • 按钮
  • 单选框
  • 切换按钮
  • 进度条
  • 文本显示
  • 文本输入
  • 自定义弹窗
  • 视频播放
  • XComponent

今天我们先来看一下按钮和文本显示

1.组件格式

组件的格式基本上都是这个样子

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

2.文本组件使用

这个我们点右边的这个小眼睛可以预览效果

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

也就是这个样子

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

同样的,我们在线性布局的下面加上修饰的东西,可以让这个文字显示在屏幕中央

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

.width('100%')是让垂直布局的宽度占据整个屏幕的宽度,让文本位于左右居中

同理.height('100%')是让水平布局的高度占据整个屏幕的高度,让文本上下居中

3.按钮组件使用

然后我们可以增加一个按钮Bottom组件

@Entry
@Component
struct Index {@State message: string = 'Hello World‘ build() {Row() {Column() {//文本组件Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)//按钮组件Button('按钮中的内容').onClick(() => {    //点击//点击按钮后发生的事情})}.width('100%')}.height('100%')}}

例如我用来演示的这个

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

点击按钮后,message的内容就会发生变化,点击按钮后的效果如下

【HarmonyOS开发】超详细的ArkTS入门(一)-鸿蒙开发者社区

我们今天的内容就到这里

结尾

我们今天入门了ArkTS,初步接触了一下组件的应用,如果有什么错误希望大家可以在评论区中指正,祝大家可以早日成为ArkTS大佬。

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

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

相关文章

如何在本地环境中模拟使用https

1.生成私钥文件,其中out输出路径可以自定义 openssl genrsa -out D:\localhost.key 2048 2 生成证书签名请求(CSR),根据第一步正确指定私钥路径,和签名请求 openssl req -new -key D:\localhost.key -out D:\localhos…

认识自定义协议

经过前面的介绍,我们知道TCP/IP协议有一组五层模型,从上往下为应用层、传输层、网络层、数据链路层和物理层,且在网络中传输的数据都必须经过这几层模型的封装和分用,作为程序员,我们最经常打交道的就是应用层。程序员…

在Node.js局域网调试https的Vue项目

需求: 最近在测试在网页端(HTML5)调用移动设备的定位等权限功能,发现某些功能是必须保证域名在https下的否则会出现不正常现象。 解决: 1.在线生成和证书 访问:CSR文件生成工具-中国数字证书CHINASSL …

接口性能优化宝典:解决性能瓶颈的策略与实践

目录 一、直面索引 (一)索引优化的常见场景 (二)如何检查索引的使用情况 (三)如何避免索引失效 (四)强制选择索引 二、提升 SQL 执行效率 (一)避免不必…

linux 系列服务器 高并发下ulimit优化文档

系统输入 ulimit -a 结果如下 解除 Linux 系统的最大进程数 要解除或提高 Linux 系统的最大进程数,可以修改 ulimit 设置和 /etc/security/limits.conf 文件中的限制。 临时修改 ulimit 设置 可以使用 ulimit 命令来查看和修改当前会话的最大进程数: 查…

LinuxTCP编程详解

目录 一、创建套接字 二、绑定套接字 示例 三、监听套接字 四、等待套接字 五、服务器端示例 六、连接套接字 七、客户端示例 八、Send和Recv C/S模式:Client客户端、Server服务器 TCP编程基于socket套接字实现,因此也习惯称为Socket编程 一、…

我的后疫情时代DevOps

看了一下上一篇博文写作时间是四月份,一晃眼已经快八个月了,这段时间解决了什么?好像没什么起眼的事情,只有两件事情印象深刻: 1)没钱; 2)裁员。 如果你所在的单位是私营企业&#x…

增量预训练网络安全大模型的一次尝试

一、背景 探索使用网络安全知识,对开源基模型进行增强,评估是否能使基模型在网络安全领域表现出更好地专业度。 项目基于云起无垠SecGPT开源项目,在hugeface开源数据集的基础上,增加了自有预训练数据,进行增量预训练…

多线程---创建及方法

*线程创建的方式: 1.继承Thread类,重写run方法。 2.实现Runnable接口,重写run方法。 实际这两个run方法都重写的是Runnable中的run方法 简化方法: 1.匿名内部类创建Thread 子类对象 Thread thread new Thread(){Overridepub…

365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)

文为「365天深度学习训练营」内部文章 参考本文所写记录性文章,请在文章开头带上「👉声明」 🍺 要求: 自己搭建VGG-16网络框架【达成√】调用官方的VGG-16网络框架【达成√】如何查看模型的参数量以及相关指标【达成√】 &#…

【联表查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

诗集鉴赏别有韵味——单例模式与工厂模式的浪漫邂逅

原文节选,出自两汉乐府诗集的《陌上桑》 日出东南隅,照我秦氏楼。秦氏有好女,自名为罗敷。罗敷喜蚕桑,采桑城南隅。青丝为笼系,桂枝为笼钩。头上倭堕髻,耳中明月珠。缃绮为下裙,紫绮为上襦。行者…

重学SpringBoot3-RestTemplate配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-RestTemplate配置与使用详解 1. 简介2. 环境要求3. 基础配置3.1 添加依赖3.2 RestTemplate配置类 4. 高级配置4.1 自定义连接池配置4.2 错误处理配置 5.…

基于YOLO模型的目标检测与识别实现在ESP32-S3 EYE上全流程部署

前言 文章首发于 基于YOLO模型的目标检测与识别实现在ESP32-S3 EYE上全流程部署 文章目录 前言项目环境安装ESP-IDF安装开发环境运行环境 训练数据集准备添加自定义数据集 下载预训练模型训练 YOLO 模型模型量化和格式转换模型结果评估训练损失评估指标模型推理 模型部署部署环…

Vue中使用ECharts图表中的阈值标记(附源码)

在数据处理和可视化领域,我们经常需要对一系列数据点进行分析。本文将介绍如何在给定的数据点中找到对应于特定Y值的X值,并设置标线起始点标记在ECharts图表中,效果图如下: 实现步骤 1、数据准备 let seriesData [// 提供日期…

如何将 Docker 镜像打包为 ZIP 文件便于分享和转发

在开发和部署中,我们常常需要将 Docker 镜像转发给其他团队成员或部署到不同的环境。如果无法直接访问镜像仓库(如 Docker Hub 或私有镜像仓库),可以选择将镜像保存为文件,并通过 ZIP 格式打包后进行分享。 本文将介绍…

岩体力学的材质-力学等属性的自动划分.

#背景: 在力学求解过程中,我们往往会对目标物体进行网格划分, 那么如何做到自动完成这个过程呢? 这里使用岩体力学中的地下岩层进行举例,这里只是简单的导入了4种界面, 复杂的可以一次性导入几十种界面,都可以计算(你能分多细,这个计算方式就可以帮你分层多细) 这里我只是导…

C++打造局域网聊天室第一课:编程环境及准备知识

文章目录 前言一、使用环境二、基础知识1.MFC(Microsoft Foundation Class)2.API(Application Programming Interface)3.Unicode编码4.简单的比较5.WinSock6.多线程知识 总结 前言 C打造局域网聊天室第一课:编程环境及…

项目-02-数学学院后台项目开发过程中的问题总结

目录 一、后台(pc端,vue2)1. dialog对话框被黑色蒙层盖住2. 将前端表格导出为word文档3. 在线查看、下载 .docx、.doc、.pdf文档 一、后台(pc端,vue2) 1. dialog对话框被黑色蒙层盖住 问题: d…

分类预测 | Matlab实现SO-LSSVM蛇群算法优化最小二乘支持向量机多特征分类预测

分类预测 | Matlab实现SO-LSSVM蛇群算法优化最小二乘支持向量机多特征分类预测 目录 分类预测 | Matlab实现SO-LSSVM蛇群算法优化最小二乘支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现Matlab实现SO-LSSVM蛇群算法优化最小二乘支…