99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

深入淺出學(xué)習(xí)eTs(三)UI布局

Harmony&嵌入式學(xué)習(xí) ? 來(lái)源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-05-13 13:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)

一、ArkUI介紹

框架介紹

方舟開(kāi)發(fā)框架(簡(jiǎn)稱(chēng):ArkUI),是一套UI開(kāi)發(fā)框架,提供開(kāi)發(fā)者進(jìn)行應(yīng)用UI開(kāi)發(fā)時(shí)所必需的能力。

基本概念

  • 組件:組件是界面搭建與顯示的最小單位。開(kāi)發(fā)者通過(guò)多種組件的組合,構(gòu)建出滿足自身應(yīng)用訴求的完整界面。
  • 頁(yè)面:page頁(yè)面是方舟開(kāi)發(fā)框架最小的調(diào)度分割單位。開(kāi)發(fā)者可以將應(yīng)用設(shè)計(jì)為多個(gè)功能頁(yè)面,每個(gè)頁(yè)面進(jìn)行單獨(dú)的文件管理,并通過(guò)路由API實(shí)現(xiàn)頁(yè)面的調(diào)度管理,以實(shí)現(xiàn)應(yīng)用內(nèi)功能的解耦。

主要特征

  • UI組件:方舟開(kāi)發(fā)框架不僅提供了多種基礎(chǔ)組件,如文本顯示、圖片顯示、按鍵交互等,也提供了支持視頻播放能力的媒體組件。并且針對(duì)不同類(lèi)型設(shè)備進(jìn)行了組件設(shè)計(jì),提供了組件在不同平臺(tái)上的樣式適配能力,此種組件稱(chēng)為“多態(tài)組件”。
  • 布局:UI界面設(shè)計(jì)離不開(kāi)布局的參與。方舟開(kāi)發(fā)框架提供了多種布局方式,不僅保留了經(jīng)典的彈性布局能力,也提供了列表、宮格、柵格布局和適應(yīng)多分辨率場(chǎng)景開(kāi)發(fā)的原子布局能力。
  • 動(dòng)畫(huà):方舟開(kāi)發(fā)框架對(duì)于UI界面的美化,除了組件內(nèi)置動(dòng)畫(huà)效果外,也提供了屬性動(dòng)畫(huà)、轉(zhuǎn)場(chǎng)動(dòng)畫(huà)和自定義動(dòng)畫(huà)能力。
  • 繪制:方舟開(kāi)發(fā)框架提供了多種繪制能力,以滿足開(kāi)發(fā)者繪制自定義形狀的需求,支持圖形繪制、顏色填充、文本繪制、圖片繪制等。
  • 交互事件:方舟開(kāi)發(fā)框架提供了多種交互能力,滿足應(yīng)用在不同平臺(tái)通過(guò)不同輸入設(shè)備均可正常進(jìn)行UI交互響應(yīng),默認(rèn)適配了觸摸手勢(shì)、遙控器、鼠標(biāo)等輸入操作,同時(shí)也提供事件通知能力。
  • 平臺(tái)API通道:方舟開(kāi)發(fā)框架提供了API擴(kuò)展機(jī)制,平臺(tái)能力通過(guò)此種機(jī)制進(jìn)行封裝,提供風(fēng)格統(tǒng)一的JS接口。

二、常見(jiàn)布局

彈性布局

Flex組件用于創(chuàng)建彈性布局,開(kāi)發(fā)者可以通過(guò)Flex的接口創(chuàng)建容器組件,進(jìn)而對(duì)容器內(nèi)的其他元素進(jìn)行彈性布局,例如:使三個(gè)元素在容器內(nèi)水平居中,垂直等間隔分散。

柵格布局

柵格系統(tǒng)作為一種輔助布局的定位工具,在平面設(shè)計(jì)和網(wǎng)站設(shè)計(jì)都起到了很好的作用,對(duì)移動(dòng)設(shè)備的界面設(shè)計(jì)有較好的借鑒作用。總結(jié)柵格系統(tǒng)對(duì)于移動(dòng)設(shè)備的優(yōu)勢(shì)主要有:

  1. 給布局提供一種可循的規(guī)律,解決多尺寸多設(shè)備的動(dòng)態(tài)布局問(wèn)題。
  2. 給系統(tǒng)提供一種統(tǒng)一的定位標(biāo)注,保證各模塊各設(shè)備的布局一致性。
  3. 給應(yīng)用提供一種靈活的間距調(diào)整方法,滿足特殊場(chǎng)景布局調(diào)整的可能性。

媒體查詢

媒體查詢(Media Query)在移動(dòng)設(shè)備上應(yīng)用十分廣泛,開(kāi)發(fā)者經(jīng)常需要根據(jù)設(shè)備的大致類(lèi)型或者特定的特征和設(shè)備參數(shù)(例如屏幕分辨率)來(lái)修改應(yīng)用的樣式。為此媒體查詢提供了如下功能:

  1. 針對(duì)設(shè)備和應(yīng)用的屬性信息,可以設(shè)計(jì)出相匹配的布局樣式。
  2. 當(dāng)屏幕發(fā)生動(dòng)態(tài)改變時(shí)(比如分屏、橫豎屏切換),應(yīng)用頁(yè)面布局同步更新。

教程主要涉及彈性布局和柵格布局的講解和演示

三、彈性布局

Flex:官方文檔

應(yīng)用彈性方式布局子組件的容器組件。

參數(shù)

參數(shù)名 參數(shù)類(lèi)型 必填 默認(rèn)值 參數(shù)描述
direction FlexDirection FlexDirection.Row 子組件在Flex容器上排列的方向,即主軸的方向。
wrap FlexWrap FlexWrap.NoWrap Flex容器是單行/列還是多行/列排列。
justifyContent FlexAlign FlexAlign.Start 子組件在Flex容器主軸上的對(duì)齊格式。
alignItems

ItemAlign

ItemAlign.Stretch 子組件在Flex容器交叉軸上的對(duì)齊格式。
alignContent FlexAlign FlexAlign.Start 交叉軸中有額外的空間時(shí),多行內(nèi)容的對(duì)齊方式。僅在wrap為Wrap或WrapReverse下生效。

在Super Visual中導(dǎo)入一個(gè)flex布局,在右側(cè)可以看到如上的參數(shù)

#深入淺出學(xué)習(xí)eTs#(三)UI布局-開(kāi)源基礎(chǔ)軟件社區(qū)
  • FlexDirection枚舉說(shuō)明
名稱(chēng) 描述
Row 主軸與行方向一致作為布局模式。
RowReverse 與Row方向相反方向進(jìn)行布局。
Column 主軸與列方向一致作為布局模式。
ColumnReverse 與Column相反方向進(jìn)行布局。

在flex中放置兩個(gè)標(biāo)簽,通過(guò)修改該參數(shù)可以實(shí)現(xiàn)橫向和豎向的顯示

#深入淺出學(xué)習(xí)eTs#(三)UI布局-開(kāi)源基礎(chǔ)軟件社區(qū)


#深入淺出學(xué)習(xí)eTs#(三)UI布局-開(kāi)源基礎(chǔ)軟件社區(qū)


如上圖,是direction的演示,F(xiàn)lex還有其它參數(shù)

FlexWrap枚舉說(shuō)明

名稱(chēng) 描述
NoWrap Flex容器的元素單行/列布局,子項(xiàng)不允許超出容器。
Wrap Flex容器的元素多行/列排布,子項(xiàng)允許超出容器。
WrapReverse Flex容器的元素反向多行/列排布,子項(xiàng)允許超出容器。

FlexAlign枚舉說(shuō)明

名稱(chēng) 描述
Start 元素在主軸方向首端對(duì)齊,第一個(gè)元素與行首對(duì)齊,同時(shí)后續(xù)的元素與前一個(gè)對(duì)齊。
Center 元素在主軸方向中心對(duì)齊,第一個(gè)元素與行首的距離與最后一個(gè)元素與行尾距離相同。
End 元素在主軸方向尾部對(duì)齊,最后一個(gè)元素與行尾對(duì)齊,其他元素與后一個(gè)對(duì)齊。
SpaceBetween Flex主軸方向均勻分配彈性元素,相鄰元素之間距離相同。第一個(gè)元素與行首對(duì)齊,最后一個(gè)元素與行尾對(duì)齊。
SpaceAround Flex主軸方向均勻分配彈性元素,相鄰元素之間距離相同。第一個(gè)元素到行首的距離和最后一個(gè)元素到行尾的距離是相鄰元素之間距離的一半。
SpaceEvenly Flex主軸方向元素等間距布局,相鄰元素之間的間距、第一個(gè)元素與行首的間距、最后一個(gè)元素到行尾的間距都完全一樣。

大家可以自己自由測(cè)試,這里就不一一演示了

四、柵格布局

柵格系統(tǒng)

柵格系統(tǒng)有Column、Margin、Gutter三個(gè)概念

#深入淺出學(xué)習(xí)eTs#(三)UI布局-開(kāi)源基礎(chǔ)軟件社區(qū)
  1. Gutter: 用來(lái)控制元素與元素之間距離關(guān)系??梢愿鶕?jù)設(shè)備的不同尺寸,定義不同的gutter值,作為柵格布局的統(tǒng)一規(guī)范。為了保證較好的視覺(jué)效果,通常gutter的取值不會(huì)大于margin的取值。
  2. Margin: 離柵格容器邊緣的距離。可以根據(jù)設(shè)備的不同尺寸,定義不同的margin值,作為柵格布局的統(tǒng)一規(guī)范。
  3. Column: 柵格布局的主要定位工具。根據(jù)設(shè)備的不同尺寸,把柵格容器分割成不同的列數(shù),在保證margin和gutter符合規(guī)范的情況下,根據(jù)總Column的個(gè)數(shù)計(jì)算每個(gè)Column列的寬度。

系統(tǒng)柵格斷點(diǎn)

系統(tǒng)根據(jù)不同水平寬度設(shè)備對(duì)應(yīng)Column的數(shù)量關(guān)系,形成了一套斷點(diǎn)規(guī)則定義。

系統(tǒng)以設(shè)備的水平寬度的屏幕密度像素值作為斷點(diǎn)依據(jù),根據(jù)當(dāng)前設(shè)備水平寬度所在的斷點(diǎn)范圍,定義了設(shè)備的寬度類(lèi)型。系統(tǒng)的柵格斷點(diǎn)范圍、設(shè)備寬度類(lèi)型及其描述,以及對(duì)應(yīng)的默認(rèn)總列數(shù)(column),邊距(margin),間隔(gutter)定義如下:

設(shè)備水平寬度斷點(diǎn)范圍 設(shè)備寬度類(lèi)型 描述 columns gutter margin
0<水平寬度<320vp XS 最小寬度類(lèi)型設(shè)備。 2 12vp 12vp
320vp<=水平寬度<600vp SM 小寬度類(lèi)型設(shè)備。 4 24vp 24vp
600vp<=水平寬度<840vp MD 中等寬度類(lèi)型設(shè)備。 8 24vp 32vp
840<=水平分辨率 LG 大寬度類(lèi)型設(shè)備。 12 24vp 48vp

這里以兩層嵌套為例:形成一個(gè)田字格

#深入淺出學(xué)習(xí)eTs#(三)UI布局-開(kāi)源基礎(chǔ)軟件社區(qū)


中間是經(jīng)過(guò)多層嵌套形成的田字格,左邊是如何進(jìn)行嵌套的層級(jí)展示,Row為豎向,Column為橫向,如果大家要做一個(gè)計(jì)算器或者任意形式的布局,使用Row和Column基本都可以實(shí)現(xiàn)。

編輯:黃飛

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

    關(guān)注

    0

    文章

    20

    瀏覽量

    1802
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3854

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    #深入淺出學(xué)習(xí)eTs#(八)“猜大小”小游戲

    本項(xiàng)目Gitee倉(cāng)地址:[深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-17 15:08 ?1434次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>#(八)“猜大小”小游戲

    #深入淺出學(xué)習(xí)eTs#(十)藍(lán)藥丸還是紅藥丸

    本項(xiàng)目Gitee倉(cāng)地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-17 15:07 ?1316次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>#(十)藍(lán)藥丸還是紅藥丸

    深入淺出排序學(xué)習(xí)使用指南

    深入淺出排序學(xué)習(xí):寫(xiě)給程序員的算法系統(tǒng)開(kāi)發(fā)實(shí)踐
    發(fā)表于 09-16 11:38

    #深入淺出學(xué)習(xí)eTs#(一)模擬器/真機(jī)環(huán)境搭建

    本項(xiàng)目的Gitee倉(cāng)地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com
    發(fā)表于 12-24 13:02

    #深入淺出學(xué)習(xí)eTs#(二)拖拽式UI

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 09:56

    #深入淺出學(xué)習(xí)eTs#(UI布局

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 09:59

    #深入淺出學(xué)習(xí)eTs#(四)登陸界面UI

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:01

    #深入淺出學(xué)習(xí)eTs#(五)eTs語(yǔ)言初識(shí)

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:02

    #深入淺出學(xué)習(xí)eTs#(六)編寫(xiě)eTs第一個(gè)控件

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:05

    #深入淺出學(xué)習(xí)eTs#(七)判斷密碼是否正確

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:06

    深入淺出Cortex-M0學(xué)習(xí)資料

    深入淺出Cortex-M0學(xué)習(xí)資料
    發(fā)表于 06-18 10:50 ?0次下載
    <b class='flag-5'>深入淺出</b>Cortex-M0<b class='flag-5'>學(xué)習(xí)</b>資料

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載
    發(fā)表于 04-12 09:16 ?30次下載

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧
    發(fā)表于 06-23 10:35 ?60次下載

    深入淺出學(xué)習(xí)eTs(一)模擬器/真機(jī)環(huán)境搭建

    本項(xiàng)目的Gitee倉(cāng)地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com
    的頭像 發(fā)表于 05-13 13:17 ?2333次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>(一)模擬器/真機(jī)環(huán)境搭建

    深入淺出學(xué)習(xí)eTs(七)如何判斷密碼是否正確

    本項(xiàng)目Gitee倉(cāng)地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-13 13:20 ?1276次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確