組件內容填充方式
用于決定在組件的寬高動畫過程中,如何將動畫最終的組件內容繪制在組件上。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。
從API Version 10開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
屬性
名稱 | 參數類型 | 必填 | 描述 |
---|---|---|---|
renderFit | [RenderFit] | 是 | 設置寬高動畫過程中的組件內容填充方式。 當不設置renderFit屬性時,取默認值RenderFit.TOP_LEFT。 |
RenderFit枚舉說明
名稱 | 描述 | 示意圖 |
---|---|---|
CENTER | 保持動畫終態的內容大小,并且內容始終與組件保持中心對齊。 | ![renderfit_center] |
TOP | 保持動畫終態的內容大小,并且內容始終與組件保持頂部中心對齊。 | ![renderfit_top] |
BOTTOM | 保持動畫終態的內容大小,并且內容始終與組件保持底部中心對齊。 | ![renderfit_bottom] |
LEFT | 保持動畫終態的內容大小,并且內容始終與組件保持左側對齊。 | ![renderfit_left] |
RIGHT | 保持動畫終態的內容大小,并且內容始終與組件保持右側對齊。 | ![renderfit_right] |
TOP_LEFT | 保持動畫終態的內容大小,并且內容始終與組件保持左上角對齊。 | ![renderfit_top_left] |
TOP_RIGHT | 保持動畫終態的內容大小,并且內容始終與組件保持右上角對齊。 | ![renderfit_top_right] |
BOTTOM_LEFT | 保持動畫終態的內容大小,并且內容始終與組件保持左下角對齊。 | ![renderfit_bottom_left] |
BOTTOM_RIGHT | 保持動畫終態的內容大小,并且內容始終與組件保持右下角對齊。 | ![renderfit_bottom_right] |
RESIZE_FILL | 不考慮動畫終態內容的寬高比,并且內容始終縮放到組件的大小。 | ![renderfit_resize_fill] |
RESIZE_CONTAIN | 保持動畫終態內容的寬高比進行縮小或放大,使內容完整顯示在組件內,且與組件保持中心對齊。 | ![renderfit_resize_contain] |
RESIZE_CONTAIN_TOP_LEFT | 保持動畫終態內容的寬高比進行縮小或放大,使內容完整顯示在組件內。當組件寬方向有剩余時,內容與組件保持左側對齊,當組件高方向有剩余時,內容與組件保持頂部對齊。 | ![renderfit_resize_contain_top_left] |
RESIZE_CONTAIN_BOTTOM_RIGHT | 保持動畫終態內容的寬高比進行縮小或放大,使內容完整顯示在組件內。當組件寬方向有剩余時,內容與組件保持右側對齊,當組件高方向有剩余時,內容與組件保持底部對齊。 | ![renderfit_resize_contain_bottom_right] |
RESIZE_COVER | 保持動畫終態內容的寬高比進行縮小或放大,使內容兩邊都大于或等于組件兩邊,且與組件保持中心對齊,顯示內容的中間部分。 | ![renderfit_resize_cover] |
RESIZE_COVER_TOP_LEFT | 保持動畫終態內容的寬高比進行縮小或放大,使內容的兩邊都恰好大于或等于組件兩邊。當內容寬方向有剩余時,內容與組件保持左側對齊,顯示內容的左側部分。當內容高方向有剩余時,內容與組件保持頂部對齊,顯示內容的頂側部分。 | ![renderfit_resize_cover_top_left] |
RESIZE_COVER_BOTTOM_RIGHT | 保持動畫終態內容的寬高比進行縮小或放大,使內容的兩邊都恰好大于或等于組件兩邊。當內容寬方向有剩余時,內容與組件保持右側對齊,顯示內容的右側部分。當內容高方向有剩余時,內容與組件保持底部對齊,顯示內容的底側部分。 | ![renderfit_resize_cover_bottom_right]HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
說明:
- 示意圖中,藍色區域表示內容,橙黃色區域表示節點大小。
- 不同的內容填充方式在寬高動畫過程中效果不一致,開發者需要選擇合適的內容填充方式以實現需要的動畫效果。
示例
// xxx.ets
@Entry
@Component
struct RenderFitExample {
@State width1: number = 100;
@State height1: number = 30;
flag: boolean = true;
build() {
Column() {
Text("Hello")
.width(this.width1)
.height(this.height1)
.borderWidth(1)
.textAlign(TextAlign.Start)
.renderFit(RenderFit.LEFT) // 設置LEFT的renderFit,動畫過程中,動畫的終態內容與組件保持左對齊
.margin(20)
Text("Hello")
.width(this.width1)
.height(this.height1)
.textAlign(TextAlign.Center)
.borderWidth(1)
.renderFit(RenderFit.CENTER) // 設置CENTER的renderFit,動畫過程中,動畫的終態內容與組件保持中心對齊
.margin(20)
Button("animate")
.onClick(() = > {
animateTo({ curve: Curve.Ease }, () = > {
if (this.flag) {
this.width1 = 150;
this.height1 = 50;
} else {
this.width1 = 100;
this.height1 = 30;
}
this.flag = !this.flag;
})
})
}.width("100%").height("100%").alignItems(HorizontalAlign.Center)
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
API
+關注
關注
2文章
1485瀏覽量
61817 -
組件
+關注
關注
1文章
505瀏覽量
17805 -
鴻蒙
+關注
關注
57文章
2310瀏覽量
42747
發布評論請先 登錄
相關推薦
鴻蒙ArkTS的起源和簡介
主流的前端開發方式。同步的,在運行時方面,通過渲染引擎的增強(平臺無關的自繪制機制、聲明式UI后端設計、動態布局/多態UI組件等),語言編譯
發表于 01-16 16:23
鴻蒙ArkTS聲明式開發:跨平臺支持列表【按鍵事件】
按鍵事件指組件與鍵盤、遙控器等按鍵設備交互時觸發的事件,適用于所有可獲焦組件,例如Button。對于Text,Image等默認不可獲焦的組件,可以設置focusable屬性為true后使用按鍵事件。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【組件快捷鍵事件】
開發者可以設置組件的自定義組合鍵,組合鍵的行為與click行為一致,組件在未獲得焦點狀態下也可以響應自定義組合鍵,每個組件可以設置多個組合鍵。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【組件可見區域變化事件】
組件可見區域變化事件是組件在屏幕中的顯示區域面積變化時觸發的事件,提供了判斷組件是否完全或部分顯示在屏幕中的能力,適用于廣告曝光埋點之類的場景。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【Flex布局】 通用屬性
從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
> - 僅當父組件是 Flex、Column、Row 、GridRow時生效。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【顯隱控制】 通用屬性
控制當前組件顯示或隱藏。注意,即使組件處于隱藏狀態,在頁面刷新時仍存在重新創建過程,因此當對性能有嚴格要求時建議使用[條件渲染]代替。 默認值:Visibility.Visible 從API version 9開始,該接口支持在
鴻蒙ArkTS聲明式開發:跨平臺支持列表【形狀裁剪】 通用屬性
參數為相應類型的組件,按指定的形狀對當前組件進行裁剪;參數為boolean類型時,設置是否按照父容器邊緣輪廓進行裁剪。 默認值:false 從API version 9開始,該接口支持在Ark
鴻蒙ArkTS聲明式開發:跨平臺支持列表【組件內容模糊】 通用屬性
為當前組件提供內容模糊能力。 value: 內容模糊樣式。模糊樣式由模糊半徑、蒙版顏色、蒙版透明度、飽和度、亮度五個參數組成。 options: 可選參數,內容模糊選項。
評論