多設(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ù)斷點(diǎn)或特定的媒體特征(如屏幕方向、窗口寬高等)自動變化以適應(yīng)外部容器變化的布局能力。 |
典型布局場景 | 應(yīng)用開發(fā)中的典型場景,包括運(yùn)行橫幅、網(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)于斷點(diǎn)的介紹)。
- 為簡化代碼、突出重點(diǎn)及方便讀者理解,本示例中的自適應(yīng)布局部分未做多設(shè)備適配。此部分建議在DevEco自帶的MatePadPro預(yù)覽器中運(yùn)行及查看效果,以獲得最佳的體驗(yàn)。
- 響應(yīng)式布局、典型布局場景、資源文件使用均做了多設(shè)備適配,推薦參考如下方式查看代碼的運(yùn)行效果:
- 將應(yīng)用安裝到不同類型的設(shè)備,查看運(yùn)行效果。
- 將應(yīng)用安裝到開發(fā)板等設(shè)備中,開啟設(shè)備的自由窗口能力,查看不同窗口尺寸下的運(yùn)行效果。
- 通過創(chuàng)建不同屏幕尺寸多個預(yù)覽器,或者通過拖拽的方式改變預(yù)覽器的屏幕尺寸,查看不同情況下的運(yùn)行效果。
效果預(yù)覽:
使用說明
- 啟動應(yīng)用,首頁展示了自適應(yīng)布局、響應(yīng)式布局、典型布局場景和資源文件使用四個按鈕。
- 點(diǎn)擊"自適應(yīng)布局"進(jìn)入新頁面,分別展示拉伸能力、縮放能力、隱藏能力、折行能力、均分能力、占比能力和延伸能力共7種自適應(yīng)布局能力。
- 點(diǎn)擊"響應(yīng)式布局"進(jìn)入新頁面,分別展示斷點(diǎn)、媒體查詢和柵格布局3種響應(yīng)式布局能力。
- 點(diǎn)擊"典型布局場景"進(jìn)入新頁面,展示了如何通過自適應(yīng)布局能力和響應(yīng)式布局能力,實(shí)現(xiàn)應(yīng)用開發(fā)中的典型場景。
- 點(diǎn)擊"資源文件使用"進(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 // 柵格斷點(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 // 柵格對齊
| | |---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 // 一多典型場景
| | |---operationEntries
| | | |---OperationEntriesSample.ets // 操作入口
| | |---repeat
| | | |---RepeatSample.ets // 重復(fù)布局
| | |---responsiveGrid
| | | |---ResponsiveGridSample.ets // 網(wǎng)格視圖
| | |---sidebar
| | | |---SidebarSample.ets // 側(cè)邊欄
| | |---tabs
| | | |---TabsSample.ets // 頁簽布局
| | |---TypicalSceneIndex.ets // 典型布局場景
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
具體實(shí)現(xiàn)
- 該示例使用了路由跳轉(zhuǎn)接口,實(shí)現(xiàn)了各個不同布局之間的頁面跳轉(zhuǎn),通過MediaQueryListener方法查詢媒體,matchMediaSync方法設(shè)置媒體查詢的查詢條件。
- 源碼:[BreakpointSystem.ets],[DirectoryList.ets]
- 接口參考:[@ohos.router],[@ohos.mediaquery]
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙
+關(guān)注
關(guān)注
59文章
2496瀏覽量
43741 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
191瀏覽量
4871
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
DevEco Studio AI輔助開發(fā)工具兩大升級功能 鴻蒙應(yīng)用開發(fā)效率再提升
者的喜愛。
應(yīng)廣大開發(fā)者的需求建議,我們最近又對CodeGenie進(jìn)行了一次升級,不僅針對DeepSeek-R1新增支持鴻蒙知識RAG能力,還上線了代碼解釋功能,持續(xù)拓展AI在輔助
發(fā)表于 04-18 14:43
雙頻融合,智聯(lián)萬物,LoRa SPI模塊RFM92LR新品上市!
展望未來,隨著物聯(lián)網(wǎng)技術(shù)的持續(xù)進(jìn)步,具備多頻段自適應(yīng)能力的通信模塊將成為構(gòu)建彈性物聯(lián)網(wǎng)絡(luò)的核心載體。

【「極速探索HarmonyOS NEXT 」閱讀體驗(yàn)】 初印象:一本純血鴻蒙應(yīng)用開發(fā)入門的好書
相關(guān)的知識;接著介紹了鴻蒙的開發(fā)語法,它選擇了ArkTS語法進(jìn)行了一個簡單的說明,鴻蒙應(yīng)用程序的
發(fā)表于 03-04 12:41
【「鴻蒙操作系統(tǒng)設(shè)計原理與架構(gòu)」閱讀體驗(yàn)】-前四章閱讀有感
者代價最小原則: 像開發(fā)單設(shè)備用戶程序一樣開發(fā)分布式用戶程序,一次開發(fā),多端
發(fā)表于 01-31 11:33
華為推出RN/H5多設(shè)備自適應(yīng)組件庫
在原生鴻蒙應(yīng)用開發(fā)中,華為針對ArkUI框架推出了一整套針對多設(shè)備適配的完善能力(如“
電源濾波器對不同電壓波動的適應(yīng)能力怎樣
電源濾波器適應(yīng)能力取決于設(shè)計與類型。無源濾波器適用于小電壓波動,成本低但效果有限。有源濾波器適用于大電壓波動,成本高但效果好。選擇需考慮應(yīng)用場景、負(fù)載變化和電磁兼容性。

ARMxy ARM工業(yè)邊緣計算網(wǎng)關(guān)帶Ubuntu OS支持二次開發(fā)
OS的優(yōu)勢以及二次開發(fā)的重要性。 一、ARMxy網(wǎng)關(guān)的技術(shù)特性 ARMxy系列邊緣計算網(wǎng)關(guān)是基于ARM架構(gòu)設(shè)計的高性能計算設(shè)備,具備以下技術(shù)特性: 高性能處理器:采用先進(jìn)的ARM處理

慶科信息獲HarmonyOS高級應(yīng)用開發(fā)能力認(rèn)證!助力品牌快速打造鴻蒙原生應(yīng)用
近日,上海慶科信息技術(shù)有限公司榮獲HarmonyOS應(yīng)用開發(fā)者高級認(rèn)證,公司在華為鴻蒙生態(tài)的開發(fā)能力得到進(jìn)一步拓展,能夠幫助客戶快速

構(gòu)建鴻蒙生態(tài)服務(wù)分發(fā)新體驗(yàn),鴻蒙元服務(wù)助力伙伴服務(wù)創(chuàng)新
HarmonyOS的“一體兩面”,元服務(wù)開發(fā)相較簡單,對開發(fā)者來說,元服務(wù)的代碼100%可以復(fù)用到原生應(yīng)用開發(fā),支持
鴻蒙開發(fā):應(yīng)用組件跨設(shè)備交互(流轉(zhuǎn))【多端協(xié)同】
由于“多端協(xié)同任務(wù)管理”能力尚未具備,開發(fā)者當(dāng)前只能通過開發(fā)系統(tǒng)應(yīng)用獲取設(shè)備列表,不支持三方應(yīng)用接入。

鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(信息應(yīng)用)案例
Mms應(yīng)用是OpenHarmony中預(yù)置的系統(tǒng)應(yīng)用,主要的功能包含信息查看、發(fā)送短信、接收短信、短信送達(dá)報告、刪除短信等功能。

鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(常見問題)
設(shè)備類型分為default(默認(rèn)設(shè)備)、tablet、tv、wearable、2in1等,有多種查詢設(shè)備類型的方式。

鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(功能開發(fā))
應(yīng)用開發(fā)至少包含兩部分工作: UI頁面開發(fā)和底層功能開發(fā)(部分需要聯(lián)網(wǎng)的應(yīng)用還會涉及服務(wù)端開發(fā))。前面章節(jié)介紹了如何解決頁面適配的問題,本章

鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(短信)案例介紹
本章從系統(tǒng)預(yù)置的應(yīng)用中,選擇短信應(yīng)用作為典型的案例,從頁面開發(fā)和工程結(jié)構(gòu)的角度,介紹"一多"的具體實(shí)踐。系統(tǒng)的產(chǎn)品形態(tài)在不斷豐富中,當(dāng)前主要有默認(rèn)設(shè)備和平板兩種產(chǎn)品形態(tài),本章的具體實(shí)踐

鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(資源使用)
在頁面開發(fā)過程中,經(jīng)常需要用到顏色、字體、間距、圖片等資源,在不同的設(shè)備或配置中,這些資源的值可能不同。

評論