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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-21 14:59 ? 次閱讀

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

介紹

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

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

說明:

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

效果預(yù)覽:

image.png

使用說明

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

工程目錄

entry/src/main/ets/
|---Application
|   |---AbilityStage.ts
|---common
|   |---BreakpointSystem.ets                    
|   |---DirectoryList.ets
|   |---GetValueOnBreakpoint.ets
|---MainAbility
|   |---MainAbility.ts
|---model
|   |---Logger.ts                                       // 日志工具
|---pages
|   |---Index.ets                                       // 首頁
|   |---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                      // 柵格斷點1
|   |   |   |---GridRowSample2.ets                      // 柵格斷點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                     // 柵格對齊
|   |   |---GridRowLayoutIndex.ets                      // 柵格布局
|   |---interactionNormCapability
|   |   |---InteractionNormCapability.ets                // 交互歸一能力
|   |---resourceQualifier
|   |   |---ResourceQualifier.ets                        // 資源文件使用
|   |---responsiveLayout
|   |   |---ResponsiveLayoutIndex.ets                    
|   |   |---breakpoint
|   |   |   |---BreakpointSample.ets                     // 斷點
|   |   |---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	                     // 一多典型場景
|   |   |---operationEntries
|   |   |   |---OperationEntriesSample.ets               // 操作入口
|   |   |---repeat
|   |   |   |---RepeatSample.ets                         // 重復(fù)布局
|   |   |---responsiveGrid
|   |   |   |---ResponsiveGridSample.ets                 // 網(wǎng)格視圖
|   |   |---sidebar
|   |   |   |---SidebarSample.ets                        // 側(cè)邊欄
|   |   |---tabs
|   |   |   |---TabsSample.ets                           // 頁簽布局
|   |   |---TypicalSceneIndex.ets                        // 典型布局場景

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

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

具體實現(xiàn)

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

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2302

    瀏覽量

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

    關(guān)注

    0

    文章

    188

    瀏覽量

    4359
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實戰(zhàn)(音樂專輯頁2)

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

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(app市場首頁)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    鴻蒙OS開發(fā):【一次開發(fā)多端部署】(多天氣)項目

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

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

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

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

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

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

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

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

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