本項目Gitee倉地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
一、控件基本屬性
在使用第一個控件前,我們需要了解一些控件都有哪些基礎(chǔ)屬性,比如說我們在Super Visual中使用過的長寬和字體大小等等,通用屬性有以下這些:
| 名稱 | 參數(shù)說明 | 默認值 | 描述 |
|---|---|---|---|
| width | Length | - | 設(shè)置組件自身的寬度,缺省時使用元素自身內(nèi)容需要的寬度。 |
| height | Length | - | 設(shè)置組件自身的高度,缺省時使用元素自身內(nèi)容需要的高度。 |
| size | { width?: Length, height?: Length } | - | 設(shè)置高寬尺寸。 |
| padding | { top?: Length, right?: Length, bottom?: Length, left?: Length } | Length | 0 | 設(shè)置內(nèi)邊距屬性。 參數(shù)為Length類型時,四個方向內(nèi)邊距同時生效。 |
| margin | { top?: Length, right?: Length, bottom?: Length, left?: Length } | Length | 0 | 設(shè)置外邊距屬性。 參數(shù)為Length類型時,四個方向外邊距同時生效。 |
| constraintSize | { minWidth?: Length, maxWidth?: Length, minHeight?: Length, maxHeight?: Length } | { minWidth: 0, maxWidth: Infinity, minHeight: 0, maxHeight: Infinity } | 設(shè)置約束尺寸,組件布局時,進行尺寸范圍限制。 |
| layoutWeight | number | 0 | 容器尺寸確定時,元素與兄弟節(jié)點主軸布局尺寸按照權(quán)重進行分配,忽略本身尺寸設(shè)置。 > 說明: > 僅在Row/Column/Flex布局中生效。 |
通過這些可以對組件的大小,組件內(nèi),組件外以及聯(lián)合邊距的內(nèi)容進行調(diào)整。
這里再引入一個強制位移(之后可能會多次用到)
| 名稱 | 參數(shù)類型 | 默認值 | 描述 |
|---|---|---|---|
| align | Alignment | Center | 設(shè)置元素內(nèi)容的對齊方式,只有當設(shè)置的width和height大小超過元素本身內(nèi)容大小時生效。 |
| direction | Direction | Auto | 設(shè)置元素水平方向的布局,可選值參照Direction枚舉說明。 |
| position | { x: Length, y: Length } | - | 使用絕對定位,設(shè)置元素錨點相對于父容器頂部起點偏移位置。在布局容器中,設(shè)置該屬性不影響父容器布局,僅在繪制時進行位置調(diào)整。 |
| markAnchor | { x: Length, y: Length } | { x: 0, y: 0 } | 設(shè)置元素在位置定位時的錨點,以元素頂部起點作為基準點進行偏移。 |
| offset | { x: Length, y: Length } | { x: 0, y: 0 } | 相對布局完成位置坐標偏移量,設(shè)置該屬性,不影響父容器布局,僅在繪制時進行位置調(diào)整。 |
二、標簽控件
Text:官方文檔
顯示一段文本的組件。
在之前的拖拽式UI中我們已經(jīng)使用過了該控件,通過修改Content屬性即可達到修改文本內(nèi)容的效果,他的其它屬性太多了,這里可以看上面的官方文檔。

如上圖,eTs控件的基本調(diào)用方式是
interface TextInterface { (content?: string | Resource): TextAttribute; }
即首先聲明一下我們是使用的什么控件(標簽、按鈕、繪畫等等),然后在下面通過點+內(nèi)容的形式,對基本屬性進行說明,如上對字體大小和背景顏色實現(xiàn)了說明。
其中content是顯示的內(nèi)容:
Text("Hello, eTs")
Text('Hello, LalHan')
.width('100%')
.textAlign(TextAlign.Center)
Text('大家一起深入淺出學(xué)習(xí)eTs,記得關(guān)注我')
.maxLines(1)
.textOverflow({overflow: TextOverflow.Ellipsis})
實現(xiàn)的效果如下圖:

三、按鈕控件
Button:官方文檔
按鈕組件,可快速創(chuàng)建不同樣式的按鈕。
interface ButtonInterface {
(): ButtonAttribute;
(options: ButtonOptions): ButtonAttribute;
(label: ResourceStr, options?: ButtonOptions): ButtonAttribute;
}
其中顯示內(nèi)容主要由label控制
Button('學(xué)習(xí)ets')
.height(60)
.width(200)
.fontSize(30)
.backgroundColor('#aabbcc')
四、組合應(yīng)用
本章節(jié)把Text和Button會結(jié)合起來,實現(xiàn)一個點擊改變數(shù)字的Demo
此時按鈕需要引入一個點擊屬性
事件
| 名稱 | 支持冒泡 | 功能描述 |
|---|---|---|
| onClick(callback: (event?: ClickEvent) => void) | 否 | 點擊動作觸發(fā)該方法調(diào)用,event參數(shù)見ClickEvent介紹。 |
ClickEvent對象說明
| 屬性名稱 | 類型 | 描述 |
|---|---|---|
| screenX | number | 點擊點相對于設(shè)備屏幕左邊沿的X坐標。 |
| screenY | number | 點擊點相對于設(shè)備屏幕上邊沿的Y坐標。 |
| x | number | 點擊點相對于被點擊元素左邊沿的X坐標。 |
| y | number | 點擊點相對于被點擊元素上邊沿的Y坐標。 |
| target8+ | EventTarget | 被點擊元素對象。 |
| timestamp | number | 事件時間戳。 |
在上面的程序中加入一個onclik()
Button('學(xué)習(xí)ets')
.height(60)
.width(200)
.fontSize(30)
.backgroundColor('#aabbcc')
.onClick(() => {
})
此時如果想點下按鈕,更改Text的顯示內(nèi)容,那么需要把Text的顯示內(nèi)容設(shè)置為一個變量
@State message: string = '點擊我后改變內(nèi)容'

這個需要放置在初始化的地方
此時把更改內(nèi)容的程序加入到按鍵中,將Text的屬性給到變量
Text(this.message)
.maxLines(2)
.fontSize(30)
Button('學(xué)習(xí)ets')
.height(60)
.width(200)
.fontSize(30)
.backgroundColor('#aabbcc')
.onClick(() => {
this.message = "已經(jīng)改變了喔"
})

在點擊后對message的變量進行修改,進行測試
五、測試效果

如上方測試,已經(jīng)實現(xiàn)了動態(tài)效果
編輯:黃飛
-
ets
+關(guān)注
關(guān)注
0文章
20瀏覽量
1870 -
OpenHarmony
+關(guān)注
關(guān)注
31文章
3897瀏覽量
20495
發(fā)布評論請先 登錄
#深入淺出學(xué)習(xí)eTs#(九)變紅碼?專屬二維碼生成
#深入淺出學(xué)習(xí)eTs#(一)模擬器/真機環(huán)境搭建
#深入淺出學(xué)習(xí)eTs#(二)拖拽式UI
#深入淺出學(xué)習(xí)eTs#(三)UI布局
#深入淺出學(xué)習(xí)eTs#(四)登陸界面UI
#深入淺出學(xué)習(xí)eTs#(五)eTs語言初識
#深入淺出學(xué)習(xí)eTs#(六)編寫eTs第一個控件
#深入淺出學(xué)習(xí)eTs#(七)判斷密碼是否正確
#深入淺出學(xué)習(xí)eTs#(九)變紅碼?專屬二維碼生成
#深入淺出學(xué)習(xí)eTs#(十一)別忘了吃藥喔
深入淺出學(xué)習(xí)eTs(一)模擬器/真機環(huán)境搭建
深入淺出學(xué)習(xí)eTs之九宮格密碼鎖功能實現(xiàn)

深入淺出學(xué)習(xí)eTs(六)eTs第一個控件編寫
評論