OpenHarmony#深入浅出学习eTs#(六)编写eTs第一个控件

news2024/10/6 8:29:33

本项目Gitee仓地址:深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com)

一、控件基本属性

在使用第一个控件前,我们需要了解一些控件都有哪些基础属性,比如说我们在Super Visual中使用过的长宽和字体大小等等,通用属性有以下这些:

名称参数说明默认值描述
widthLength-设置组件自身的宽度,缺省时使用元素自身内容需要的宽度。
heightLength-设置组件自身的高度,缺省时使用元素自身内容需要的高度。
size{ width?: Length, height?: Length }-设置高宽尺寸。
padding{ top?: Length, right?: Length, bottom?: Length, left?: Length } | Length0设置内边距属性。 参数为Length类型时,四个方向内边距同时生效。
margin{ top?: Length, right?: Length, bottom?: Length, left?: Length } | Length0设置外边距属性。 参数为Length类型时,四个方向外边距同时生效。
constraintSize{ minWidth?: Length, maxWidth?: Length, minHeight?: Length, maxHeight?: Length }{ minWidth: 0, maxWidth: Infinity, minHeight: 0, maxHeight: Infinity }设置约束尺寸,组件布局时,进行尺寸范围限制。
layoutWeightnumber0容器尺寸确定时,元素与兄弟节点主轴布局尺寸按照权重进行分配,忽略本身尺寸设置。 > 说明: > 仅在Row/Column/Flex布局中生效。

通过这些可以对组件的大小,组件内,组件外以及联合边距的内容进行调整。

这里再引入一个强制位移(之后可能会多次用到)

名称参数类型默认值描述
alignAlignmentCenter设置元素内容的对齐方式,只有当设置的width和height大小超过元素本身内容大小时生效。
directionDirectionAuto设置元素水平方向的布局,可选值参照Direction枚举说明。
position{ x: Length, y: Length }-使用绝对定位,设置元素锚点相对于父容器顶部起点偏移位置。在布局容器中,设置该属性不影响父容器布局,仅在绘制时进行位置调整。
markAnchor{ x: Length, y: Length }{ x: 0, y: 0 }设置元素在位置定位时的锚点,以元素顶部起点作为基准点进行偏移。
offset{ x: Length, y: Length }{ x: 0, y: 0 }相对布局完成位置坐标偏移量,设置该属性,不影响父容器布局,仅在绘制时进行位置调整。

二、标签控件

Text:官方文档

显示一段文本的组件。

在之前的拖拽式UI中我们已经使用过了该控件,通过修改Content属性即可达到修改文本内容的效果,他的其它属性太多了,这里可以看上面的官方文档。


如上图,eTs控件的基本调用方式是

interface TextInterface {
  (content?: string | Resource): TextAttribute;
}
  • 1.
  • 2.
  • 3.

复制

即首先声明一下我们是使用的什么控件(标签、按钮、绘画等等),然后在下面通过点+内容的形式,对基本属性进行说明,如上对字体大小和背景颜色实现了说明。

其中content是显示的内容:

Text("Hello, eTs")

Text('Hello, LalHan')
  .width('100%')
  .textAlign(TextAlign.Center)

Text('大家一起深入浅出学习eTs,记得关注我')
  .maxLines(1)
  .textOverflow({overflow: TextOverflow.Ellipsis})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

复制

实现的效果如下图:

三、按钮控件

Button:官方文档

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

interface ButtonInterface {
  (): ButtonAttribute;
  (options: ButtonOptions): ButtonAttribute;
  (label: ResourceStr, options?: ButtonOptions): ButtonAttribute;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

复制

其中显示内容主要由label控制

Button('学习ets')
          .height(60)
          .width(200)
          .fontSize(30)
          .backgroundColor('#aabbcc')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

复制

四、组合应用

本章节把Text和Button会结合起来,实现一个点击改变数字的Demo

此时按钮需要引入一个点击属性

事件

名称支持冒泡功能描述
onClick(callback: (event?: ClickEvent) => void)点击动作触发该方法调用,event参数见ClickEvent介绍。

ClickEvent对象说明

属性名称类型描述
screenXnumber点击点相对于设备屏幕左边沿的X坐标。
screenYnumber点击点相对于设备屏幕上边沿的Y坐标。
xnumber点击点相对于被点击元素左边沿的X坐标。
ynumber点击点相对于被点击元素上边沿的Y坐标。
target8+EventTarget被点击元素对象。
timestampnumber事件时间戳。

在上面的程序中加入一个onclik()

        Button('学习ets')
          .height(60)
          .width(200)
          .fontSize(30)
          .backgroundColor('#aabbcc')
          .onClick(() => {
          })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

复制

此时如果想点下按钮,更改Text的显示内容,那么需要把Text的显示内容设置为一个变量

@State message: string = '点击我后改变内容'
  • 1.

复制

这个需要放置在初始化的地方

此时把更改内容的程序加入到按键中,将Text的属性給到变量

        Text(this.message)
          .maxLines(2)
          .fontSize(30)
        Button('学习ets')
          .height(60)
          .width(200)
          .fontSize(30)
          .backgroundColor('#aabbcc')
          .onClick(() => {
            this.message = "已经改变了喔"
          })

复制



在点击后对message的变量进行修改,进行测试

 

五、测试效果


如上方测试,已经实现了动态效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Retrofit的使用

文章目录Retrofit的使用最好用的网络库: RetrofitRetrofit的基本用法处理复杂接口的地址类型Retrofit构建器的最佳写法Retrofit的使用 最好用的网络库: Retrofit Retrofit是一款由Square公司开发的网络库,但是它和OkHttp定位完全不同,OkHttp的侧重点是底层通信的实现,而Retro…

Java集合类——LinkedList(单链表及双链表)

一,ArrayList的缺陷 1.空间浪费 在之前的博客中,我利用源码详细的讲解了ArrayList这个集合类(尤其是扩容机制),可以知道ArrayList的底层主要是一个动态的可变数组,容量满的时候需要进行1.5倍扩容。但是我…

第二十讲:神州路由器静态路由的配置

实验拓扑图如下所示 设备 端口 IP 子网掩码 网关 Router-A G0/0 120.83.200.55 255.255.255.0 无 G0/3 192.168.0.1 255.255.255.0 无 Router-B G0/0 120.83.200.56 255.255.255.0 无 G0/3 192.168.1.1 255.255.255.0 无 PC1 192.168.0.2 255.255.255…

jQuery 的基本使用

1、jQuery 介绍 1.1、JavaScript 库 JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动…

【C++】const关键字

【C】const关键字 0x1 常量 C定义常量有两种方式 #define 宏常量:#define 常量名 常量值 通常在文件上方定义,表示一个常量宏常量不可以修改 // 宏常量 #define MAX 999int main() {return 0; }const修饰的变量: const 数据类型 常量名 …

docker 安装Es

1、下载镜像文件 docker pull elasticsearch:7.4.2 存储和检索数据 docker pull kibana:7.4.2 可视化检索数据 2、创建实例 1、ElasticSearch mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "http.host: 0.0.0.0" >…

第三十六章 数论——容斥原理

第三十六章 数论——容斥原理一、容斥原理1、定理内容二、代码模板1、问题(1)如何求出能够被整除的个数?(2)如何枚举出2n−12^n-12n−1种情况?2、代码实现:一、容斥原理 1、定理内容 我们在高…

开启微信小程序的学习窗口(第一课)

第一个问题 什么是微信小程序 微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。 全面开放申请后&#xff0…

Educational Codeforces Round 93 (Rated for Div. 2) K. Lonely Numbers

Problem - C - Codeforces 翻译: 给定一个数组𝑎1,𝑎2,…,𝑎𝑛,由0到9的整数组成。一子数组𝑎𝑙,𝑎𝑙 1,𝑎&…

R实战 | 置换多元方差分析(以PCoA的PERMANOVA分析为例)

adonis-cover置换多元方差分析(Permutational multivariate analysis of variance,PERMANOVA),又称非参数多因素方差分析(nonparametric multivariate analysis of variance)、或者ADONIS分析。它利用距离矩…

第003课 - 分布式基础概念

文章目录 集群、分布式、节点远程调用负载均衡服务注册/发现和注册中心服务熔断和降级API网关我们以前将所有的代码、页面、sql语句,写到一个应用,如果有一个地方有问题,整个就不可用了。 我们可以基于业务边界进行服务微化和拆分。 如果有一个出现了问题,不影响其他服务…

迅为LS2K0500开发板龙芯全国产处理器LoongArch架构核心主板

全国产开发板: 迅为iTOP-LS2K0500开发采用龙芯LS2K0500处理器,基于龙芯自主指令系统(LoongArch)架构,片内集成64位LA264处理器核、32位DDR3控制器、2DGPU、DVO显示接口、两路PCle2.0、两路SATA2.0、四路USB2.0、一路US…

梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解

相关文章 梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解反向传播算法和计算图详细介绍及其原理详解 文章目录相关文章前言一、回归拟合问题二、损失函数三、梯度下降算法四、随机梯度下降算法五、动量随机梯…

国际山岳日,周大福百年承诺续写永恒美好

纵横古今,俯瞰万里 每一寸绿野都孕育万物生机 每一座山林都彰示生命之本 百周年承诺 守护自然生态 周大福珠宝集团坚守“用真诚让幸福永恒“的企业理念 我们的百周年承诺包括对地球真诚且有效的付出服务 致力守护珍贵的大自然环境,为人类和星球幸福…

吉林优美姿文化:抖音怎么做爆款输出?

要知道,现在自媒体发展的越来越好了,其中发展的最好的就是抖音平台,大家如果要利用抖音平台达到引流的目的的话,也要去学习一下抖音相关的技巧,那么抖音怎么去买号呢?跟着吉林优美姿小编来一起看看吧&#…

亚马逊---人工智能入门---学习笔记

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​ 📣系列专栏:蓝桥杯算法笔记 💬总结:希望你看完之…

SpringBoot 的配置

目录 配置文件到底有什么作用呢 ? SpringBoot的配置文件的格式有哪些呢? properties配置文件 yml配置文件 properties乱码问题 多平台的配置文件设置 配置文件到底有什么作用呢 ? 配置文件主要是配置项目的一些重要的数据.. 比如配置数据库的连接信息 数据库是非常重…

虚拟机中如何安装Liunx环境

安装步骤 首先 准备一个Linux系统镜像 这是下载地址:https://cn.ubuntu.com/download/server/step1 然后打开虚拟机软件,点击新建 配置虚拟机名称 配置内存【建议4GB,内存小就少弄一顿】【再点击下一步】 硬盘配置 点击下一步 到这一步&am…

MVP、原型、概念验证,傻傻分不清楚?

MVP、原型以及概念验证这三者的概念虽然没有密切的联系,但也有不少人会分不清这三者的区别,在这篇文章中,我们会帮大家区分一下这三个概念。 首先是MVP,MVP是Minimum Viable Product的缩写,即最小可行性产品。MVP通过…

计算机网络---DHCP和自动配置

什么是DHCP HCP(动态主机配置协议)是一个局域网的网络协议,客户机 / 服务器协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Se…