本項目Gitee倉地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
一、控件基本屬性
在使用第一個控件前,我們需要了解一些控件都有哪些基礎(chǔ)屬性,比如說我們在Super Visual中使用過的長寬和字體大小等等,通用屬性有以下這些:
名稱 | 參數(shù)說明 | 默認(rèn)值 | 描述 |
---|---|---|---|
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è)置約束尺寸,組件布局時,進(jìn)行尺寸范圍限制。 |
layoutWeight | number | 0 | 容器尺寸確定時,元素與兄弟節(jié)點主軸布局尺寸按照權(quán)重進(jìn)行分配,忽略本身尺寸設(shè)置。 > 說明: > 僅在Row/Column/Flex布局中生效。 |
通過這些可以對組件的大小,組件內(nèi),組件外以及聯(lián)合邊距的內(nèi)容進(jìn)行調(diào)整。
這里再引入一個強制位移(之后可能會多次用到)
名稱 | 參數(shù)類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
align | Alignment | Center | 設(shè)置元素內(nèi)容的對齊方式,只有當(dāng)設(shè)置的width和height大小超過元素本身內(nèi)容大小時生效。 |
direction | Direction | Auto | 設(shè)置元素水平方向的布局,可選值參照Direction枚舉說明。 |
position | { x: Length, y: Length } | - | 使用絕對定位,設(shè)置元素錨點相對于父容器頂部起點偏移位置。在布局容器中,設(shè)置該屬性不影響父容器布局,僅在繪制時進(jìn)行位置調(diào)整。 |
markAnchor | { x: Length, y: Length } | { x: 0, y: 0 } | 設(shè)置元素在位置定位時的錨點,以元素頂部起點作為基準(zhǔn)點進(jìn)行偏移。 |
offset | { x: Length, y: Length } | { x: 0, y: 0 } | 相對布局完成位置坐標(biāo)偏移量,設(shè)置該屬性,不影響父容器布局,僅在繪制時進(jìn)行位置調(diào)整。 |
二、標(biāo)簽控件
Text:官方文檔
顯示一段文本的組件。
在之前的拖拽式UI中我們已經(jīng)使用過了該控件,通過修改Content屬性即可達(dá)到修改文本內(nèi)容的效果,他的其它屬性太多了,這里可以看上面的官方文檔。
如上圖,eTs控件的基本調(diào)用方式是
interface TextInterface { (content?: string | Resource): TextAttribute; }
即首先聲明一下我們是使用的什么控件(標(biāo)簽、按鈕、繪畫等等),然后在下面通過點+內(nèi)容的形式,對基本屬性進(jìn)行說明,如上對字體大小和背景顏色實現(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坐標(biāo)。 |
screenY | number | 點擊點相對于設(shè)備屏幕上邊沿的Y坐標(biāo)。 |
x | number | 點擊點相對于被點擊元素左邊沿的X坐標(biāo)。 |
y | number | 點擊點相對于被點擊元素上邊沿的Y坐標(biāo)。 |
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ìn)行修改,進(jìn)行測試
五、測試效果
如上方測試,已經(jīng)實現(xiàn)了動態(tài)效果
編輯:黃飛
-
ets
+關(guān)注
關(guān)注
0文章
20瀏覽量
1626 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3744瀏覽量
16473
發(fā)布評論請先 登錄
相關(guān)推薦
評論