RM新时代网站-首页

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

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

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

鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(多設(shè)備自適應(yīng)能力)簡(jiǎn)單介紹

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-21 14:59 ? 次閱讀

多設(shè)備自適應(yīng)能力

介紹

本示例是《一次開(kāi)發(fā),多端部署》的配套示例代碼,展示了[頁(yè)面開(kāi)發(fā)的一多能力],包括自適應(yīng)布局、響應(yīng)式布局、典型布局場(chǎng)景以及資源文件使用。

名稱簡(jiǎn)介 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
自適應(yīng)布局當(dāng)外部容器大小發(fā)生變化時(shí),元素可以根據(jù)相對(duì)關(guān)系自動(dòng)變化以適應(yīng)外部容器變化的布局能力。
響應(yīng)式布局當(dāng)外部容器大小發(fā)生變化時(shí),元素可以根據(jù)斷點(diǎn)或特定的媒體特征(如屏幕方向、窗口寬高等)自動(dòng)變化以適應(yīng)外部容器變化的布局能力。
典型布局場(chǎng)景應(yīng)用開(kāi)發(fā)中的典型場(chǎng)景,包括運(yùn)行橫幅、網(wǎng)格、側(cè)邊欄等。
資源文件使用根據(jù)當(dāng)前的設(shè)備特征(如設(shè)備類(lèi)型、屏幕密度等)或應(yīng)用場(chǎng)景(如語(yǔ)言、國(guó)家、地區(qū)等),從resources目錄下不同的資源限定詞目錄中獲取相應(yīng)的資源值。

說(shuō)明:

  • 自適應(yīng)布局能力僅可以保證在外部容器大小在一定范圍內(nèi)變化時(shí),容器內(nèi)的元素布局合理。如果外部尺寸發(fā)生較大變化,需要借助響應(yīng)式布局能力進(jìn)一步適配(詳見(jiàn)《一次開(kāi)發(fā),多端部署》中關(guān)于斷點(diǎn)的介紹)。
  • 為簡(jiǎn)化代碼、突出重點(diǎn)及方便讀者理解,本示例中的自適應(yīng)布局部分未做多設(shè)備適配。此部分建議在DevEco自帶的MatePadPro預(yù)覽器中運(yùn)行及查看效果,以獲得最佳的體驗(yàn)。
  • 響應(yīng)式布局、典型布局場(chǎng)景、資源文件使用均做了多設(shè)備適配,推薦參考如下方式查看代碼的運(yùn)行效果:
    • 將應(yīng)用安裝到不同類(lèi)型的設(shè)備,查看運(yùn)行效果。
    • 將應(yīng)用安裝到開(kāi)發(fā)板等設(shè)備中,開(kāi)啟設(shè)備的自由窗口能力,查看不同窗口尺寸下的運(yùn)行效果。
    • 通過(guò)創(chuàng)建不同屏幕尺寸多個(gè)預(yù)覽器,或者通過(guò)拖拽的方式改變預(yù)覽器的屏幕尺寸,查看不同情況下的運(yùn)行效果。

效果預(yù)覽:

image.png

使用說(shuō)明

  1. 啟動(dòng)應(yīng)用,首頁(yè)展示了自適應(yīng)布局、響應(yīng)式布局、典型布局場(chǎng)景和資源文件使用四個(gè)按鈕。
  2. 點(diǎn)擊"自適應(yīng)布局"進(jìn)入新頁(yè)面,分別展示拉伸能力、縮放能力、隱藏能力、折行能力、均分能力、占比能力和延伸能力共7種自適應(yīng)布局能力。
  3. 點(diǎn)擊"響應(yīng)式布局"進(jìn)入新頁(yè)面,分別展示斷點(diǎn)、媒體查詢和柵格布局3種響應(yīng)式布局能力。
  4. 點(diǎn)擊"典型布局場(chǎng)景"進(jìn)入新頁(yè)面,展示了如何通過(guò)自適應(yīng)布局能力和響應(yīng)式布局能力,實(shí)現(xiàn)應(yīng)用開(kāi)發(fā)中的典型場(chǎng)景。
  5. 點(diǎn)擊"資源文件使用"進(jìn)入新頁(yè)面,展示字符串和圖片資源的使用。

工程目錄

entry/src/main/ets/
|---Application
|   |---AbilityStage.ts
|---common
|   |---BreakpointSystem.ets                    
|   |---DirectoryList.ets
|   |---GetValueOnBreakpoint.ets
|---MainAbility
|   |---MainAbility.ts
|---model
|   |---Logger.ts                                       // 日志工具
|---pages
|   |---Index.ets                                       // 首頁(yè)
|   |---atomicLayoutCapability                          
|   |   |---equipartitionCapability
|   |   |   |---EquipartitionCapability.ets             // 均分能力
|   |   |---extensionCapability
|   |   |   |---ExtensionCapability1.ets                // 延伸能力1
|   |   |   |---ExtensionCapability2.ets                // 延伸能力2
|   |   |---flexibleCapability
|   |   |   |---FlexibleCapability1.ets                 // 拉伸能力2
|   |   |   |---FlexibleCapability2.ets                 // 拉伸能力2
|   |   |---hiddenCapability
|   |   |   |---HiddenCapability.ets                    // 隱藏能力
|   |   |---proportionCapability
|   |   |   |---ProportionCapability.ets                // 占比能力
|   |   |---scaleCapability
|   |   |   |---ScaleCapability.ets                     // 縮放能力
|   |   |---wrapCapability
|   |   |   |---WrapCapability.ets                      // 拆行能力
|   |   |---AtomicLayoutCapabilityIndex.ets             // 自適應(yīng)布局
|   |---gridRow                       
|   |   |---gridRow
|   |   |   |---GridRowSample1.ets                      // 柵格斷點(diǎn)1
|   |   |   |---GridRowSample2.ets                      // 柵格斷點(diǎn)2
|   |   |   |---GridRowSample3.ets                      // 柵格columns和gutter
|   |   |   |---GridRowSample4.ets                      // 柵格margin
|   |   |   |---GridRowSample5.ets                      // 柵格span
|   |   |   |---GridRowSample6.ets                      // 柵格offset
|   |   |   |---GridRowSample7.ets                      // 柵格order
|   |   |   |---GridRowSample8.ets                      // 柵格span/offset/order繼承性
|   |   |   |---GridRowSample9.ets                      // 柵格嵌套
|   |   |   |---GridRowSample10.ets                     // 柵格對(duì)齊
|   |   |---GridRowLayoutIndex.ets                      // 柵格布局
|   |---interactionNormCapability
|   |   |---InteractionNormCapability.ets                // 交互歸一能力
|   |---resourceQualifier
|   |   |---ResourceQualifier.ets                        // 資源文件使用
|   |---responsiveLayout
|   |   |---ResponsiveLayoutIndex.ets                    
|   |   |---breakpoint
|   |   |   |---BreakpointSample.ets                     // 斷點(diǎn)
|   |   |---mediaQuery
|   |   |   |---MediaQuerySample.ets                     // 媒體查詢
|   |---typicalScene
|   |   |---banner
|   |   |   |---BannerSample.ets                         // 廣告欄
|   |   |---bigImage
|   |   |   |---BigImageSample.ets                       // 大圖瀏覽
|   |   |---diversion
|   |   |   |---DiversionSample.ets                      // 挪移布局
|   |   |---header
|   |   |   |---HeaderSample.ets                         // 頂部布局
|   |   |---indentation
|   |   |   |---IndentationSample.ets                    // 縮進(jìn)布局
|   |   |---multiLaneList
|   |   |   |---MultiLaneListSample.ets                  // 多列列表
|   |   |---multiScene                               
|   |   |   |---data	
|   |   |   |   |---apliications	
|   |   |   |   |   |---Apliications.ets		
|   |   |   |   |---home
|   |   |   |   |   |---Home.ets					
|   |   |   |---pages    
|   |   |   |   |---apliications
|   |   |   |   |   |---Apliications.ets	
|   |   |   |   |---home	
|   |   |   |   |   |---Home.ets
|   |   |   |   |---player	
|   |   |   |   |   |---Player.ets
|   |   |   |   |---MultiScene.ets	                     // 一多典型場(chǎng)景
|   |   |---operationEntries
|   |   |   |---OperationEntriesSample.ets               // 操作入口
|   |   |---repeat
|   |   |   |---RepeatSample.ets                         // 重復(fù)布局
|   |   |---responsiveGrid
|   |   |   |---ResponsiveGridSample.ets                 // 網(wǎng)格視圖
|   |   |---sidebar
|   |   |   |---SidebarSample.ets                        // 側(cè)邊欄
|   |   |---tabs
|   |   |   |---TabsSample.ets                           // 頁(yè)簽布局
|   |   |---TypicalSceneIndex.ets                        // 典型布局場(chǎng)景

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151450.png

具體實(shí)現(xiàn)

  • 該示例使用了路由跳轉(zhuǎn)接口,實(shí)現(xiàn)了各個(gè)不同布局之間的頁(yè)面跳轉(zhuǎn),通過(guò)MediaQueryListener方法查詢媒體,matchMediaSync方法設(shè)置媒體查詢的查詢條件。
  • 源碼:[BreakpointSystem.ets],[DirectoryList.ets]
  • 接口參考:[@ohos.router],[@ohos.mediaquery]

審核編輯 黃宇

聲明:本文內(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)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2339

    瀏覽量

    42805
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4382
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙OS開(kāi)發(fā):典型頁(yè)面場(chǎng)景【一次開(kāi)發(fā)多端部署】實(shí)戰(zhàn)(設(shè)置典型頁(yè)面)

    本示例展示了設(shè)置應(yīng)用的典型頁(yè)面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開(kāi)發(fā)、多端部署能力。
    的頭像 發(fā)表于 05-27 09:36 ?1138次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:典型頁(yè)面場(chǎng)景【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(設(shè)置典型頁(yè)面)

    鴻蒙OS開(kāi)發(fā):典型頁(yè)面場(chǎng)景【一次開(kāi)發(fā),多端部署】實(shí)戰(zhàn)(音樂(lè)專輯頁(yè)2)

    本示例使用[一次開(kāi)發(fā)多端部署]中介紹自適應(yīng)布局能力
    的頭像 發(fā)表于 05-25 16:47 ?2091次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:典型頁(yè)面場(chǎng)景【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(音樂(lè)專輯頁(yè)2)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(app市場(chǎng)首頁(yè))

    本小節(jié)將以應(yīng)用市場(chǎng)首頁(yè)為例,介紹如何使用自適應(yīng)布局能力和響應(yīng)式布局能力適配不同尺寸窗口。
    的頭像 發(fā)表于 05-25 16:41 ?1967次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(app市場(chǎng)首頁(yè))

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(自適應(yīng)布局)

    針對(duì)常見(jiàn)的開(kāi)發(fā)場(chǎng)景,方舟開(kāi)發(fā)框架提煉了七種自適應(yīng)布局能力,這些布局可以獨(dú)立使用,也可多種布局疊加使用。
    的頭像 發(fā)表于 05-25 16:36 ?1691次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>自適應(yīng)</b>布局)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(視頻應(yīng)用)

    者提供了“一次開(kāi)發(fā),多端部署”的系統(tǒng)能力,讓開(kāi)發(fā)者可以基于
    的頭像 發(fā)表于 05-25 16:29 ?4535次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(視頻應(yīng)用)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā)多端部署】(音樂(lè)專輯頁(yè)面)

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開(kāi)發(fā)多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-25 16:21 ?790次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂(lè)專輯頁(yè)面)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】應(yīng)用(自適應(yīng)布局)

    針對(duì)常見(jiàn)的開(kāi)發(fā)場(chǎng)景,方舟開(kāi)發(fā)框架提煉了七種自適應(yīng)布局能力,這些布局可以獨(dú)立使用,也可多種布局疊加使用。
    的頭像 發(fā)表于 05-24 10:34 ?1018次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】應(yīng)用(<b class='flag-5'>自適應(yīng)</b>布局)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】( 設(shè)置app頁(yè)面)

    本示例展示了設(shè)置應(yīng)用的典型頁(yè)面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開(kāi)發(fā)、多端部署能力
    的頭像 發(fā)表于 05-21 14:56 ?1042次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置app頁(yè)面)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā)多端部署】(音樂(lè)專輯主頁(yè))

    本示例使用一次開(kāi)發(fā)多端部署介紹自適應(yīng)布局能力和響
    的頭像 發(fā)表于 05-21 14:48 ?727次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂(lè)專輯主頁(yè))

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(設(shè)備自適應(yīng)能力)實(shí)例

    此Demo展示在JS中的設(shè)備自適應(yīng)能力,包括資源限定詞、原子布局和響應(yīng)式布局。
    的頭像 發(fā)表于 05-20 18:27 ?1364次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>多</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>自適應(yīng)能力</b>)實(shí)例

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(多天氣)項(xiàng)目

    本示例展示個(gè)天氣應(yīng)用界面,包括首頁(yè)、城市管理、添加城市、更新時(shí)間彈窗,體現(xiàn)一次開(kāi)發(fā),多端部署能力
    的頭像 發(fā)表于 05-20 14:59 ?837次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項(xiàng)目

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(天氣應(yīng)用)案例

    本章通過(guò)個(gè)天氣應(yīng)用,介紹一多應(yīng)用的整體開(kāi)發(fā)過(guò)程,包括UX設(shè)計(jì)、工程管理及調(diào)試、頁(yè)面開(kāi)發(fā)等。
    的頭像 發(fā)表于 05-15 15:42 ?1035次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(天氣應(yīng)用)案例

    HarmonyOS開(kāi)發(fā)案例:【一次開(kāi)發(fā),多端部署-音樂(lè)專輯】

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開(kāi)發(fā)、多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-13 16:48 ?679次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>-音樂(lè)專輯】

    HarmonyOS開(kāi)發(fā)案例:【一次開(kāi)發(fā)多端部署(視頻應(yīng)用)】

    者提供了“一次開(kāi)發(fā),多端部署”的系統(tǒng)能力,讓開(kāi)發(fā)者可以基于
    的頭像 發(fā)表于 05-11 15:41 ?1441次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>(視頻應(yīng)用)】

    鴻蒙OS實(shí)戰(zhàn)開(kāi)發(fā):【設(shè)備自適應(yīng)服務(wù)卡片】

    服務(wù)卡片的布局和使用,其中卡片內(nèi)容顯示使用了一次開(kāi)發(fā),多端部署能力實(shí)現(xiàn)
    的頭像 發(fā)表于 04-09 09:20 ?856次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>實(shí)戰(zhàn)<b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>多</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>自適應(yīng)</b>服務(wù)卡片】
    RM新时代网站-首页