多設(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è)備類型、屏幕密度等)或應(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)用安裝到不同類型的設(shè)備,查看運(yùn)行效果。
- 將應(yīng)用安裝到開(kāi)發(fā)板等設(shè)備中,開(kāi)啟設(shè)備的自由窗口能力,查看不同窗口尺寸下的運(yùn)行效果。
- 通過(guò)創(chuàng)建不同屏幕尺寸多個(gè)預(yù)覽器,或者通過(guò)拖拽的方式改變預(yù)覽器的屏幕尺寸,查看不同情況下的運(yùn)行效果。
效果預(yù)覽:
使用說(shuō)明
- 啟動(dòng)應(yīng)用,首頁(yè)展示了自適應(yīng)布局、響應(yīng)式布局、典型布局場(chǎng)景和資源文件使用四個(gè)按鈕。
- 點(diǎn)擊"自適應(yīng)布局"進(jìn)入新頁(yè)面,分別展示拉伸能力、縮放能力、隱藏能力、折行能力、均分能力、占比能力和延伸能力共7種自適應(yīng)布局能力。
- 點(diǎn)擊"響應(yīng)式布局"進(jìn)入新頁(yè)面,分別展示斷點(diǎn)、媒體查詢和柵格布局3種響應(yīng)式布局能力。
- 點(diǎn)擊"典型布局場(chǎng)景"進(jìn)入新頁(yè)面,展示了如何通過(guò)自適應(yīng)布局能力和響應(yīng)式布局能力,實(shí)現(xiàn)應(yīng)用開(kāi)發(fā)中的典型場(chǎng)景。
- 點(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)景
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
具體實(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)注
59文章
2573瀏覽量
43898 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
191瀏覽量
4943
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
鴻蒙5開(kāi)發(fā)案例分享揭秘---一多開(kāi)發(fā)實(shí)例(商務(wù)辦公)
了參考答案!今天就帶大家挖一挖這些實(shí)戰(zhàn)案例,手把手教你玩轉(zhuǎn)\"一次開(kāi)發(fā),多端部署\"?。ㄎ哪┯畜@喜小技巧哦~)
?**
發(fā)表于 06-03 16:24
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(地圖導(dǎo)航)
規(guī)劃頁(yè) :面板滑動(dòng)時(shí)布局自適應(yīng)變形
3?? 服務(wù)卡片 :八宮格靜態(tài)卡片多端通吃
4?? 實(shí)況窗 :膠囊形態(tài)+卡片形態(tài)雙展示
最絕的是所有效果都用****ArkUI框架實(shí)現(xiàn),完全遵循\"一次開(kāi)發(fā)
發(fā)表于 06-03 16:17
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(旅行訂票)
把多端適配的黑科技玩出了花!趕緊帶大家來(lái)挖寶,手把手解析如何用一套代碼征服手機(jī)/折疊屏/平板/PC四大終端!
?** 一多開(kāi)發(fā)核心揭秘**
鴻蒙的\"
發(fā)表于 06-03 16:16
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(股票類)
?【干貨預(yù)警】HarmonyOS開(kāi)發(fā)隱藏案例大揭秘!手把手教你打造自適應(yīng)股票APP**?**
大家好!今天要跟大家分享一個(gè)HarmonyOS開(kāi)發(fā)的寶藏案例——股票類應(yīng)用\"
發(fā)表于 06-03 16:13
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(圖片美化)
?【鴻蒙開(kāi)發(fā)寶藏案例分享】一次搞定多端適配的圖片美化應(yīng)用開(kāi)發(fā)思路!?
Hey小伙伴們~ 今天在翻鴻蒙
發(fā)表于 06-03 16:09
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(購(gòu)物比價(jià))
者文檔里的實(shí)戰(zhàn)教程,簡(jiǎn)直就是搞定多端開(kāi)發(fā)的通關(guān)秘籍!
? 一、這些功能也太酷了吧!
這個(gè)案例完美詮釋了鴻蒙\"一次
發(fā)表于 06-03 16:07
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(社區(qū)評(píng)論)
?【鴻蒙開(kāi)發(fā)寶藏案例大放送!】一次搞定多端適配的實(shí)戰(zhàn)經(jīng)驗(yàn)分享**?**
大家好呀~今天在翻鴻蒙開(kāi)發(fā)
發(fā)表于 06-03 16:03
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(即時(shí)通訊)
們準(zhǔn)備好了超多實(shí)用開(kāi)發(fā)案例!尤其是那個(gè)讓無(wú)數(shù)人頭疼的\"一次開(kāi)發(fā)多端部署\",官方竟然悄悄塞了這
發(fā)表于 06-03 16:01
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(短視頻)
,手把手教你用一套代碼搞定手機(jī)/平板/折疊屏!
一、開(kāi)篇嘮嘮嗑
最近被HarmonyOS的\"一次開(kāi)發(fā),多端
發(fā)表于 06-03 15:59
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多開(kāi)發(fā)實(shí)例(長(zhǎng)視頻)
;)
看完是不是覺(jué)得鴻蒙的\"一多開(kāi)發(fā)\"也沒(méi)那么玄乎?其實(shí)只要掌握自適應(yīng)布局+模塊化設(shè)計(jì),一套代碼征服多
發(fā)表于 06-03 15:58
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多交互事件開(kāi)發(fā)實(shí)踐
了交互開(kāi)發(fā)的寶藏案例庫(kù)?。?b class='flag-5'>OS:為什么沒(méi)人早點(diǎn)告訴我?)特地整理了超實(shí)用的開(kāi)發(fā)技巧,看完你也能輕松實(shí)現(xiàn)\"一次開(kāi)發(fā),
發(fā)表于 06-03 15:51
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多分欄開(kāi)發(fā)實(shí)踐
?【HarmonyOS開(kāi)發(fā)者的寶藏指南】一次搞定多設(shè)備分欄布局,原來(lái)還能這么玩!
大家好呀!今天在鴻蒙社區(qū)挖到
發(fā)表于 06-03 12:03
鴻蒙5開(kāi)發(fā)寶藏案例分享---一多斷點(diǎn)開(kāi)發(fā)實(shí)踐
?【鴻蒙開(kāi)發(fā)實(shí)戰(zhàn)進(jìn)階】六大核心案例深度拆解,帶你玩轉(zhuǎn)多端適配!? 案例4:動(dòng)態(tài)網(wǎng)格布局(電商商品列表)應(yīng)用場(chǎng)景:手機(jī)/平板商品展示差異
痛點(diǎn)分析:手機(jī)單列→平板多列,需智能計(jì)算展示數(shù)量
發(fā)表于 05-30 11:08
華為推出RN/H5多設(shè)備自適應(yīng)組件庫(kù)
在原生鴻蒙應(yīng)用開(kāi)發(fā)中,華為針對(duì)ArkUI框架推出了一整套針對(duì)多設(shè)備適配的完善能力(如“
電源濾波器對(duì)不同電壓波動(dòng)的適應(yīng)能力怎樣
電源濾波器適應(yīng)能力取決于設(shè)計(jì)與類型。無(wú)源濾波器適用于小電壓波動(dòng),成本低但效果有限。有源濾波器適用于大電壓波動(dòng),成本高但效果好。選擇需考慮應(yīng)用場(chǎng)景、負(fù)載變化和電磁兼容性。

評(píng)論