媒體查詢
說明: 從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。** **:[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
導入模塊
import mediaquery from '@ohos.mediaquery'
權限
無
mediaquery.matchMediaSync
matchMediaSync(condition: string): MediaQueryListener
設置媒體查詢的查詢條件,并返回對應的監聽句柄。
系統能力: SystemCapability.ArkUI.ArkUI.Full
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| condition | string | 是 | 媒體事件的匹配條件,具體可參考[媒體查詢語法規則]。 |
返回值:
| 類型 | 說明 |
|---|---|
| MediaQueryListener | 媒體事件監聽句柄,用于注冊和去注冊監聽回調。 |
示例:
let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //監聽橫屏事件
MediaQueryListener
媒體查詢的句柄,并包含了申請句柄時的首次查詢結果。
系統能力: SystemCapability.ArkUI.ArkUI.Full
屬性
| 名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
|---|---|---|---|---|
| matches | boolean | 是 | 否 | 是否符合匹配條件。 |
| media | string | 是 | 否 | 媒體事件的匹配條件。 |
on
on(type: 'change', callback: Callback): void
通過句柄向對應的查詢條件注冊回調,當媒體屬性發生變更時會觸發該回調。
系統能力: SystemCapability.ArkUI.ArkUI.Full
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| type | string | 是 | 必須填寫字符串'change'。 |
| callback | Callback | 是 | 向媒體查詢注冊的回調 |
off
off(type: 'change', callback?: Callback): void
通過句柄向對應的查詢條件去注冊回調,當媒體屬性發生變更時不在觸發指定的回調。
系統能力: SystemCapability.ArkUI.ArkUI.Full
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| type | boolean | 是 | 必須填寫字符串'change'。 |
| callback | Callback | 否 | 需要去注冊的回調,如果參數缺省則去注冊該句柄下所有的回調。 |
示例:
import mediaquery from '@ohos.mediaquery'
let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //監聽橫屏事件
function onPortrait(mediaQueryResult) {
if (mediaQueryResult.matches) {
// do something here
} else {
// do something here
}
}
listener.on('change', onPortrait) // 注冊回調
listener.off('change', onPortrait) // 去注冊回調
MediaQueryResult
屬性
| 名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
|---|---|---|---|---|
| matches | boolean | 是 | 否 | 是否符合匹配條件。 |
| media | string | 是 | 否 | 媒體事件的匹配條件。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |

示例
import mediaquery from '@ohos.mediaquery'
let portraitFunc = null
@Entry
@Component
struct MediaQueryExample {
@State color: string = '#DB7093'
@State text: string = 'Portrait'
listener = mediaquery.matchMediaSync('(orientation: landscape)')
onPortrait(mediaQueryResult) {
if (mediaQueryResult.matches) {
this.color = '#FFD700'
this.text = 'Landscape'
} else {
this.color = '#DB7093'
this.text = 'Portrait'
}
}
aboutToAppear() {
portraitFunc = this.onPortrait.bind(this) //bind current js instance
this.listener.on('change', portraitFunc)
}
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text(this.text).fontSize(24).fontColor(this.color)
}
.width('100%').height('100%')
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
9519瀏覽量
157020 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883
發布評論請先 登錄
相關推薦
熱點推薦
分享---簡單快速實現烘烤設備UI界面的方法
本文分享下,如何簡單快速的設計出工業烘烤設備的UI界面方法,
借助 \"墨刀\" 界面原型設計工具,設計烘烤機主界面圖片。
使用拓普微 SGTools
發表于 08-26 11:58
【匯思博SEEK100開發板試用體驗】在開發板鴻蒙OS搭建QT開發環境
應用所需的功能邏輯。比如與開發板的硬件功能進行交互,若要調用開發板的攝像頭功能,可通過相關的 Qt 多媒體庫結合鴻蒙系統提供的攝像頭接口進行
發表于 08-24 18:34
媒體查詢詳解
;@ohos.mediaquery';通過matchMediaSync接口設置媒體查詢條件,保存返回的條件監聽句柄listener。例如監聽橫屏事件:
let listener
發表于 06-25 08:26
UI開發概述
組件是UI的必要元素,形成了在界面中的樣子,由框架直接提供的稱為系統組件,由開發者定義的稱為自定義組件。系統內置組件包括按鈕、單選框、進度條、文本等。開發者可以通過鏈式調用的方式設置
發表于 06-24 06:36
鴻蒙5開發寶藏案例分享---點擊響應時延分析
鴻蒙寶藏大發現!官方隱藏的實戰案例,開發效率直接翻倍 ?
大家好呀!最近在折騰鴻蒙開發時,意外挖到了華為官方的 案例寶藏庫 !原來HarmonyOS文檔里藏了近百個場景化案例,覆蓋了布
發表于 06-12 17:01
鴻蒙5開發寶藏案例分享---應用架構實戰技巧
大家好! 今天咱們聊聊鴻蒙開發中那些“官方文檔提了但實際開發難找”的架構設計技巧。結合官方文檔,我會用 真實代碼案例+通俗講解 ,幫你把分層架構和線程通信落地到項目里,告別“理論會了,代碼不會
發表于 06-12 16:14
鴻蒙5開發寶藏案例分享---自由流轉的拖拽多屏聯動
? 【干貨預警】鴻蒙開發寶藏案例大揭秘!手把手教你玩轉常用功能**?**
大家好呀~,今天在扒拉鴻蒙文檔的時候,突然發現官方竟然藏了一堆超實用的開發案例! ?** 之前總覺得
發表于 06-03 18:50
鴻蒙5開發寶藏案例分享---一多開發實例(地圖導航)
\'))
Text(item.desc)
.fontSize($r(\'app.float.list_desc_font_size\'))
}
})
配合資源文件實現多端尺寸自適應,再也不用手動寫媒體查詢
發表于 06-03 16:17
鴻蒙5開發寶藏案例分享---一多開發實例(旅行訂票)
? 鴻蒙開發寶藏大發現!一多開發實戰案例解析(旅行訂票篇)
大家好!今天在翻鴻蒙開發者文檔時,意外發現了官方藏著一整片\"案例綠洲\"!尤其
發表于 06-03 16:16
鴻蒙5開發寶藏案例分享---一多開發實例(購物比價)
彈窗
}
? 二、開發避坑指南(血淚經驗)
在復現官方案例時,這幾個重點要拿小本本記好:
布局三大心法
柵格系統:用%替代固定px
斷點監聽:@ohos.mediaquery神器
權重布局
發表于 06-03 16:07
鴻蒙5開發寶藏案例分享---一多開發實例(長視頻)
【?鴻蒙開發寶藏案例大起底!原來官方藏了這么多干貨!】
大家好呀~最近在折騰鴻蒙應用開發的時候,意外發現了官方文檔里藏著一堆超實用的開發案例
發表于 06-03 15:58
鴻蒙開發實現圖片上傳(上傳用戶頭像)
(FilePicker),實現該能力。通過Picker訪問相關文件,將拉起對應的應用,引導用戶完成界面操作,接口本身無需申請權限。
import picker from \'@ohos
發表于 05-24 23:09
基于RV1126開發板實現簡單的UI開發示例
本方案為最簡單的UI開發示例,已為用戶初步構建一個基本的應用工程;準備好我司的easyeai-api鏈接調用;準備好UI的開發環境。其目的在于方便用戶馬上進行帶有
鴻蒙開發接口UI界面:【@ohos.mediaquery (媒體查詢)】
評論