在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    8

    瀏覽量

    9836
  • OpenHarmony
    +關(guān)注

    關(guān)注

    27

    文章

    3835

    瀏覽量

    18171

原文標(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)推薦

    彈性布局 (Flex) 提供更加有效的方式對(duì)容器的子元素進(jìn)行排列、對(duì)齊和分配剩余空間

    彈性布局 (Flex) 彈性布局Flex)提供更加有效的方式對(duì)容器的子元素進(jìn)行排列、對(duì)齊和分配剩余空間。常用于頁面頭部導(dǎo)航欄的均勻分布
    發(fā)表于 04-30 07:54

    層疊布局 (Stack):Stack組件為容器組件,容器內(nèi)可包含各種子元素

    層疊布局 (Stack) 層疊布局(StackLayout)用于在屏幕上預(yù)留一塊區(qū)域來顯示組件的元素,提供元素可以重疊的布局。層疊布局
    發(fā)表于 04-30 07:51

    flex-builder為什么無法構(gòu)建xserver?

    我能夠使用 flex-builder 工具很好地構(gòu)建 OpenCV 組件。我正在嘗試使用以下命令構(gòu)建 xserver 組件: bld -c xserver -m ls1028ardb 我得到以下
    發(fā)表于 04-09 08:21

    如何使用flex-builder構(gòu)建aruco庫(kù)?

    我正在嘗試構(gòu)建 libopencv-aruco,它通常附帶新版本的 OpenCV。當(dāng)我運(yùn)行 bld -c opencv 時(shí),我沒有看到正在構(gòu)建此庫(kù)。 誰能提供一些關(guān)于如何使用 flex-builder 構(gòu)建 aruco 庫(kù)的指導(dǎo)?
    發(fā)表于 03-31 06:13

    Flex Power Designer軟件工具助力電源系統(tǒng)設(shè)計(jì)

    在電源系統(tǒng)的設(shè)計(jì),時(shí)間是至關(guān)重要的因素。在緊迫的工期下交付可靠且高效的解決方案的需求,推動(dòng)了對(duì)強(qiáng)大技術(shù)支持服務(wù)和工具的需求。Flex Power Modules提供廣泛的資源來幫助工程師取得成功
    的頭像 發(fā)表于 03-05 14:00 ?346次閱讀

    請(qǐng)問DLPLCRC900DEVM上的Flex 和dlp050XY上的Flex網(wǎng)絡(luò)名稱怎么對(duì)應(yīng)?

    請(qǐng)問DLPLCRC900DEVM上的Flex 和dlp050XY上的Flex網(wǎng)絡(luò)名稱怎么對(duì)應(yīng)? 控制板M_DDA[15:0]對(duì)應(yīng) DMD DDC_[15:0] 控制板M_DDB[15:0]對(duì)應(yīng)
    發(fā)表于 02-24 07:36

    ADI收購(gòu)Flex Logix,強(qiáng)化數(shù)字產(chǎn)品組合

    近日,全球領(lǐng)先的半導(dǎo)體公司ADI(Analog Devices, Inc.)宣布完成了對(duì)美國(guó)創(chuàng)新企業(yè)Flex Logix的收購(gòu)。Flex Logix是一家專注于可重構(gòu)計(jì)算技術(shù)的公司,為半導(dǎo)體和系統(tǒng)
    的頭像 發(fā)表于 11-12 14:17 ?734次閱讀

    第三屆OpenHarmony技術(shù)大會(huì)星光璀璨、致謝OpenHarmony社區(qū)貢獻(xiàn)者

    10月12日,在上海舉辦的第三屆OpenHarmony技術(shù)大會(huì)上,32家高校OpenHarmony技術(shù)俱樂部璀璨亮相,30家高校OpenHarmony開發(fā)者協(xié)會(huì)盛大啟幕。還分別致謝了年度星光TSG
    的頭像 發(fā)表于 10-21 14:10 ?484次閱讀

    鴻蒙跨端實(shí)踐-布局方案介紹

    作者:京東科技 劉寧 一、前言 動(dòng)態(tài)化使用 jue 語言(開發(fā)風(fēng)格與 Vue 一致)開發(fā),對(duì)于視圖的布局采用了標(biāo)準(zhǔn)的Flex 布局方式。對(duì)于列表類視圖,動(dòng)態(tài)化提供了、、、等標(biāo)簽,將子視圖的布局
    的頭像 發(fā)表于 09-18 10:26 ?1304次閱讀
    鴻蒙跨端實(shí)踐-<b class='flag-5'>布局</b>方案介紹

    基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開發(fā)。本案例已在OpenHarmony凌蒙派-RK3568開發(fā)
    的頭像 發(fā)表于 09-15 08:09 ?762次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用開發(fā):Hello<b class='flag-5'>Openharmony</b>

    pcb設(shè)計(jì)布局的要點(diǎn)是什么

    在PCB設(shè)計(jì)布局是一個(gè)非常重要的環(huán)節(jié),它直接影響到電路的性能、可靠性和成本。以下是關(guān)于PCB布局的一些要點(diǎn),這些要點(diǎn)將幫助您設(shè)計(jì)出高質(zhì)量的PCB。 確定設(shè)計(jì)目標(biāo)和要求 在開始布局
    的頭像 發(fā)表于 09-02 14:48 ?776次閱讀

    OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)2024年務(wù)虛研討會(huì)圓滿落幕

    7月19日至20日,OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)(后文簡(jiǎn)稱“OpenHarmony TSC”)2024年務(wù)虛研討會(huì)于中國(guó)廈門順利召開。 本次會(huì)議由OpenHarmony
    的頭像 發(fā)表于 07-23 10:42 ?752次閱讀
    <b class='flag-5'>OpenHarmony</b>項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)2024年<b class='flag-5'>中</b>務(wù)虛研討會(huì)圓滿落幕

    鴻蒙ArkTS容器組件:Grid

    網(wǎng)格容器,由“行”和“列”分割的單元格所組成,通過指定“項(xiàng)目”所在的單元格做出各種各樣的布局
    的頭像 發(fā)表于 07-09 11:55 ?1519次閱讀
    鴻蒙ArkTS容器組件:<b class='flag-5'>Grid</b>

    OpenHarmony之開機(jī)優(yōu)化

    對(duì)其進(jìn)行詳細(xì)的性能分析,從而優(yōu)化系統(tǒng)啟動(dòng)速度和運(yùn)行效率。 三丶開機(jī)優(yōu)化 開機(jī)優(yōu)化的主要目的是為了快速啟動(dòng)開機(jī)動(dòng)畫和退出開機(jī)動(dòng)畫(顯示桌面)。所以在優(yōu)化之前,我們需要了解一下OpenHarmony系統(tǒng)
    發(fā)表于 07-01 16:39

    如何在Openharmony實(shí)現(xiàn)USB復(fù)合設(shè)備

    如何讓Openharmony設(shè)備HDC接口(OTG接口)作為一個(gè)復(fù)合設(shè)備,實(shí)現(xiàn)HDC(HDC:鴻蒙設(shè)備連接器) + CDC ACM(USB 虛擬串口),而設(shè)備本身支持HDC。所以需要增加CDC ACM(USB 虛擬串口)。
    的頭像 發(fā)表于 06-13 15:03 ?2475次閱讀
    如何在<b class='flag-5'>Openharmony</b><b class='flag-5'>中</b>實(shí)現(xiàn)USB復(fù)合設(shè)備
    主站蜘蛛池模板: se综合 | 天天透天天射 | 黄色理伦 | 亚洲国产网址 | 福利视频网址 | 国产人成精品香港三级古代 | 久久综合偷偷噜噜噜色 | 啪啪网站免费看 | 天天操天天干天天透 | 天堂在线影院 | 夜夜爱成人免费网站 | 日日插夜夜爽 | 男女交性视频播放视频视频 | 一本大道香蕉大vr在线吗视频 | 中文字幕欧美成人免费 | 婷婷网址| 99热久久久久久久免费观看 | 天天躁日日2018躁狠狠躁 | 无遮挡一级毛片视频 | 色在线网站 | 色www视频永久免费 色www视频永久免费软件 | 天天综合在线观看 | 国产午夜毛片一区二区三区 | 亚洲一区二区三区四区五区六区 | 四虎国产永久在线观看 | 美女被拍拍拍拍拍拍拍拍 | 性天堂网 | 色综合色综合色综合色综合网 | 丁香花在线视频观看免费 | 三级网在线 | 一级特黄aa毛片免费观看 | 美女又黄又免费 | 思思久久好好热精品国产 | 午夜免费免费啪视频观看 | 色视频免费国产观看 | 亚洲午夜精品久久久久久人妖 | 久久97精品久久久久久久看片 | 亚洲国产香蕉视频欧美 | 亚洲免费色视频 | 国产三级a三级三级天天 | 717影院理论午夜伦不卡久久 |