日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Openharmony中的Flex和Grid布局

OpenHarmony技術(shù)社區(qū) ? 來源:OpenHarmony技術(shù)社區(qū) ? 作者:韓祥 ? 2022-04-26 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Flex 布局

Flex 布局是很常用也是很方便的一種布局模式,此種布局方式已經(jīng)廣泛使用在前端、小程序開發(fā)之中。

如果之前已經(jīng)學(xué)習(xí)過 Flex 布局,那么在 Openharmony 中也是大同小異的。

用法如下:

容器的常用參數(shù):

  • direction:子組件在 Flex 容器上排列的方向,即主軸的方向。

  • wrap:Flex 容器是單行/列還是多行/列排列。

  • justifyContent:子組件在 Flex 容器主軸上的對(duì)齊格式。

  • alignItems:子組件在 Flex 容器交叉軸上的對(duì)齊格式。

  • alignContent:交叉軸中有額外的空間時(shí),多行內(nèi)容的對(duì)齊方式。僅在 wrap 為 Wrap 或 WrapReverse 下生效。

子組件常用屬性(不是所有屬性):flexGrow:Flex 容器的剩余空間分配給給此屬性所在的組件的比例。

簡(jiǎn)單的使用:Flex 布局的屬性有很多,但是最常用的還是讓子組件垂直水平居中,兩條屬性即可保證子組件垂直水平居中:

Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){
Text('水平垂直居中顯示').fontSize(18)
}.width('100%').height('100%')

Flex 也可用于很多常見布局場(chǎng)景,如下圖效果:

078ba7be-c481-11ec-bce3-dac502259ad0.png

利用 direction 屬性和 flexGrow 配合即可輕松達(dá)到上面的布局效果,核心代碼段如下:

Flex({direction:FlexDirection.Column}){
Column(){
ForEach(this.ListData,(item)=>{
Text(item).fontSize(18).height(100).width('100%').margin({bottom:5}).backgroundColor('#575da8')
},item=>item)
}.flexGrow(1).backgroundColor('#08ec89').margin({bottom:2}).padding(10)
Flex({alignItems:ItemAlign.Center}){
ForEach(this.navData,(item)=>{
Text(item).fontSize(18).height('100%').flexGrow(1).textAlign(TextAlign.Center).backgroundColor("#18ec08").margin(1)
},item=>item)
}.height(64)
}.width('100%').height('100%')

Flex 還有一個(gè)常用的屬性是 wrap,可以去配置換行,不過如果是多行建議還是使用 Grid 布局,更加靈活,下面看看 Grid 布局。

Grid 布局

Grid 做前端的同學(xué)應(yīng)該都很熟悉了,翻譯成中文為“柵格” , 它將頁面劃分成一個(gè)個(gè)網(wǎng)格,可以任意組合不同的網(wǎng)格,做出各種各樣的布局。

用法如下:

基本概念:網(wǎng)格布局的區(qū)域,稱為“容器”,容器內(nèi)部采用網(wǎng)格定位的子元素,稱為"項(xiàng)目"。

項(xiàng)目必須使用 Grid 子組件 GridItem 子組件包裹,即 Grid 的子組件必須是 GridItem。

容器屬性:

  • columnsTemplate
  • rowsTemplate

這兩個(gè)屬性用于設(shè)置當(dāng)前網(wǎng)格布局的行和列的數(shù)量,不設(shè)置時(shí)默認(rèn) 1 列行或者 1 列。

可以采用 fr 關(guān)鍵字表示各行和列的比例關(guān)系, 以列為例:‘1fr 1fr 2fr’ 將父組件等分為 4 等份,第一列第二列各占 1 份,第三列占兩份:

07963cd8-c481-11ec-bce3-dac502259ad0.png

核心代碼如下:

@StateNumber:String[]=['0','1','2']
build(){
Grid(){
ForEach(this.Number,(item:string)=>{
ForEach(this.Number,(item:string)=>{
GridItem(){
Text(item)
.fontSize(16)
.backgroundColor(Color.Grey)
.width('100%')
.height('100%')
.textAlign(TextAlign.Center)
}.borderWidth(1)
},item=>item)
},item=>item)
}
.columnsTemplate('1fr1fr2fr')
.rowsTemplate('1fr1fr2fr')
.backgroundColor(Color.Black)
.height(300)
}

這兩個(gè)屬性里面也可使用 px 單位,如將 columnsTemplate 修改:

.columnsTemplate('100px1fr1fr')

展示效果如下:

07aa671c-c481-11ec-bce3-dac502259ad0.pngcolumnsGap 和 rowsGap:這兩個(gè)屬性可以設(shè)置行列之間的間距,此處不在贅述。

layoutDirection:LayoutDirection.Row 和 LayoutDirection.Column,不過嘗試過后兩種值的結(jié)果都是按列排布,默認(rèn)不給屬性的話是按行排布,這里應(yīng)是沒有完全支持。

其他屬性:看到文檔還提供了很多屬性,但目前嘗試過后沒有效果,未支持。

事件:

onScrollIndex(first:number)=>void

當(dāng)前列表顯示的起始位置發(fā)生變化會(huì)觸發(fā)這個(gè)事件,若要展示效果,則需使布局出現(xiàn)滾動(dòng)條,可以去掉 rowsTemplate 屬性,然后在子組件內(nèi)部設(shè)置高度,然后再添加事件監(jiān)聽:

Grid(){
ForEach(this.Number,(item:string)=>{
ForEach(this.Number,(item:string)=>{
GridItem(){
Text(item)
.fontSize(16)
.backgroundColor(Color.Grey)
.width('100%')
.height(80)
.textAlign(TextAlign.Center)
}
},item=>item)
},item=>item)
}
.columnsTemplate('1fr1fr1fr1fr1fr')
.columnsGap(10)
.rowsGap(10)
.onScrollIndex((first:number)=>{
console.log(first.toString())
})
.backgroundColor(Color.Black)
.height(300)

總結(jié)

Grid 布局與 Flex 有一定的相似性,都可以指定容器內(nèi)部多個(gè)項(xiàng)目的位置。但是,它們也存在重大區(qū)別。

Flex 布局是軸線布局,只能指定"項(xiàng)目"針對(duì)軸線的位置,可以看作是一維布局。

Grid 布局則是將容器劃分成"行"和"列",產(chǎn)生單元格,然后指定"項(xiàng)目所在"的單元格,可以看作是二維布局。

其實(shí)掌握這兩種布局方式,頁面上面大部分效果都是可以做出來的。當(dāng)然,當(dāng)前 Gird 布局還有很多屬性是不支持的,相比較與傳統(tǒng)的前端 Grid 布局功能上有很多不足,期待 API 更新,完善功能。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Grid
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    10333
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3977

    瀏覽量

    21382

原文標(biāo)題:Openharmony中的Flex和Grid布局

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Debian flex-installer 無法下載引導(dǎo)映像怎么解決?

    flex-installer 時(shí),我看到了一個(gè)問題: root@TinyLinux:~# flex-installer -i pf -d /dev/mmcblk1/dev/mmcblk1: 61
    發(fā)表于 03-03 08:15

    #OpenHarmony HDC調(diào)試

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:46:28

    #OpenHarmony 開發(fā)環(huán)境準(zhǔn)備

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:44:31

    #OpenHarmony 鏡像燒錄

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:42:36

    #OpenHarmony 系統(tǒng)概述

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:39:20

    #OpenHarmony Hello World應(yīng)用以及部署

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:32:52

    OpenHarmony系統(tǒng)】本期視頻將為您介紹怎樣將鏡像燒錄到板卡。

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月15日 14:29:55

    Flex Power Modules將產(chǎn)品制造擴(kuò)展至歐洲

    Flex Power Modules已將其產(chǎn)品制造擴(kuò)展到歐洲,在奧地利阿爾特霍芬的Flex工廠設(shè)立新的生產(chǎn)基地。此舉將提高Flex Power Modules的電源模塊產(chǎn)能,助力其更快速、更高效地響應(yīng)AI數(shù)據(jù)中心客戶快速增長(zhǎng)的需
    的頭像 發(fā)表于 12-16 13:51 ?854次閱讀

    Molex Premo-Flex FFC跳線電纜技術(shù)解析與應(yīng)用指南

    Premo-Flex FFC 0.30mm腳距跳線電纜的鎖定孔可在高沖擊和高振動(dòng)環(huán)境具有出色的保持力。該系列提供各種電纜長(zhǎng)度、電路計(jì)數(shù)和交錯(cuò)設(shè)計(jì),適用于空間受限的應(yīng)用。
    的頭像 發(fā)表于 11-20 15:12 ?716次閱讀

    【HarmonyOS 5】鴻蒙中常見的標(biāo)題欄布局方案

    是返回按鈕,右邊是問號(hào)幫助按鈕,中間是標(biāo)題文字。 那有幾種布局方式,分別怎么布局呢?常見的思維是,有老鐵使用row去布局,怎么都對(duì)不齊。 二、解決方案 方案一,使用Flex
    的頭像 發(fā)表于 07-11 18:30 ?1021次閱讀
    【HarmonyOS 5】鴻蒙中常見的標(biāo)題欄<b class='flag-5'>布局</b>方案

    HarmonyOS NEXT應(yīng)用元服務(wù)布局優(yōu)化精簡(jiǎn)節(jié)點(diǎn)數(shù)

    復(fù)制 共15個(gè)節(jié)點(diǎn),并且其中并沒有冗余的嵌套節(jié)點(diǎn)。而扁平化布局是一種讓頁面結(jié)構(gòu)變淺變寬的方式,通過一些高級(jí)組件如RelativeContainer、Grid等容器,可以讓元素在平面上展開。這種布局方式
    發(fā)表于 06-26 10:21

    HarmonyOS NEXT應(yīng)用元服務(wù)布局優(yōu)化精簡(jiǎn)節(jié)點(diǎn)數(shù)

    復(fù)制 共15個(gè)節(jié)點(diǎn),并且其中并沒有冗余的嵌套節(jié)點(diǎn)。而扁平化布局是一種讓頁面結(jié)構(gòu)變淺變寬的方式,通過一些高級(jí)組件如RelativeContainer、Grid等容器,可以讓元素在平面上展開。這種布局方式
    發(fā)表于 06-26 10:21

    網(wǎng)格布局介紹

    ,且Grid不可滾動(dòng)。(推薦使用該種布局方式) 只設(shè)置行、列數(shù)量與占比的一個(gè):元素按照設(shè)置的方向進(jìn)行排布,超出的元素可通過滾動(dòng)的方式展示。 行列數(shù)量與占比都不設(shè)置:元素在布局方向上排
    發(fā)表于 06-25 06:27

    HarmonyOS NEXT應(yīng)用元服務(wù)布局合理使用布局組件

    布的組件是按照特定的方向線性放置,如橫向/縱向/Z序方向。除上述布局類型外,還有一些復(fù)雜布局能力,如Flex、List、Grid、RelativeContainer和自定義
    發(fā)表于 06-20 15:48

    鴻蒙5開發(fā)寶藏案例分享---Grid性能優(yōu)化案例

    注意到。今天我就帶大家拆解這個(gè)案例,加上詳細(xì)講解和代碼分析,幫你輕松提升應(yīng)用流暢度! ?問題場(chǎng)景:為什么Grid會(huì)卡? 當(dāng)Grid布局需要實(shí)現(xiàn) 不規(guī)則網(wǎng)格 (比如合并單元格)時(shí),我們常用<
    發(fā)表于 06-12 17:47
    绥芬河市| 靖州| 轮台县| 尼玛县| 灵山县| 株洲市| 云和县| 托克逊县| 新泰市| 南木林县| 白玉县| 遵化市| 深水埗区| 湄潭县| 沙田区| 侯马市| 湟中县| 石家庄市| 富平县| 三门峡市| 孝昌县| 丘北县| 花莲市| 钟山县| 青河县| 盐边县| 墨江| 蕉岭县| 石屏县| 阳信县| 远安县| 道真| 池州市| 栾城县| 襄樊市| 两当县| 昌邑市| 同德县| 隆德县| 札达县| 巨鹿县|