0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发接口UI界面:【@ohos.mediaquery (媒体查询)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-27 21:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

媒体查询

说明: 从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

参数:

参数名类型必填说明
conditionstring媒体事件的匹配条件,具体可参考[媒体查询语法规则]。

返回值:

类型说明
MediaQueryListener媒体事件监听句柄,用于注册和去注册监听回调。

示例:

let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件

MediaQueryListener

媒体查询的句柄,并包含了申请句柄时的首次查询结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

属性

名称参数类型可读可写说明
matchesboolean是否符合匹配条件。
mediastring媒体事件的匹配条件。

on

on(type: 'change', callback: Callback): void

通过句柄向对应的查询条件注册回调,当媒体属性发生变更时会触发该回调。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
typestring必须填写字符串'change'。
callbackCallback向媒体查询注册的回调

off

off(type: 'change', callback?: Callback): void

通过句柄向对应的查询条件去注册回调,当媒体属性发生变更时不在触发指定的回调。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
typeboolean必须填写字符串'change'。
callbackCallback需要去注册的回调,如果参数缺省则去注册该句柄下所有的回调。

示例:

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

属性

名称参数类型可读可写说明
matchesboolean是否符合匹配条件。
mediastring媒体事件的匹配条件。HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151450.png

示例

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

    文章

    9444

    浏览量

    156142
  • 鸿蒙
    +关注

    关注

    60

    文章

    2858

    浏览量

    45353
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【汇思博SEEK100开发板试用体验】在开发鸿蒙OS搭建QT开发环境

    应用所需的功能逻辑。比如与开发板的硬件功能进行交互,若要调用开发板的摄像头功能,可通过相关的 Qt 多媒体库结合鸿蒙系统提供的摄像头接口进行
    发表于 08-24 18:34

    产品详情查询API接口

      在现代电子商务和软件开发中,产品详情查询API接口扮演着至关重要的角色。它允许开发者通过编程方式从远程服务器获取产品的详细信息,如名称、价格、描述和库存状态等。这种
    的头像 发表于 07-24 14:39 383次阅读
    产品详情<b class='flag-5'>查询</b>API<b class='flag-5'>接口</b>

    鸿蒙应用px,vp,fp概念详解

    传统移动端开发方向,转到鸿蒙应用开发方向。 前端开发同学对于开发范式很熟悉,但是对于工作流程和开发
    的头像 发表于 07-07 11:48 1000次阅读
    <b class='flag-5'>鸿蒙</b>应用px,vp,fp概念详解

    媒体查询详解

    ;@ohos.mediaquery';通过matchMediaSync接口设置媒体查询条件,保存返回的条件监听句柄listener。例如监听横屏事件: let listener
    发表于 06-25 08:26

    UI开发概述

    组件是UI的必要元素,形成了在界面中的样子,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。系统内置组件包括按钮、单选框、进度条、文本等。开发者可以通过链式调用的方式设置
    发表于 06-24 06:36

    鸿蒙5开发宝藏案例分享---点击响应时延分析

    鸿蒙宝藏大发现!官方隐藏的实战案例,开发效率直接翻倍 ? 大家好呀!最近在折腾鸿蒙开发时,意外挖到了华为官方的 案例宝藏库 !原来HarmonyOS文档里藏了近百个场景化案例,覆盖了布
    发表于 06-12 17:01

    鸿蒙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

    基于RV1126开发板实现简单的UI开发示例

    本方案为最简单的UI开发示例,已为用户初步构建一个基本的应用工程;准备好我司的easyeai-api链接调用;准备好UI开发环境。其目的在于方便用户马上进行带有
    的头像 发表于 04-18 16:07 888次阅读
    基于RV1126<b class='flag-5'>开发</b>板实现简单的<b class='flag-5'>UI</b><b class='flag-5'>开发</b>示例

    OBOO鸥柏触摸屏一体查询机结合AI人工智能DeepSeek应用开发文档

    随着科技的飞速发展,AI智能技术已经广泛应用于各行各业。OBOO鸥柏作为专注室内室外网络广告屏,触摸屏一体查询机高端品牌定位,鸥柏触摸屏查询终端机作为现代信息查询的重要人机交互工具,与AI智能
    的头像 发表于 03-04 11:48 613次阅读
    OBOO鸥柏触摸屏一<b class='flag-5'>体查询</b>机结合AI人工智能DeepSeek应用<b class='flag-5'>开发</b>文档

    第二篇 RA8889 实现酷炫车载液晶仪表系列视频: UI界面介绍

    本系列文章介绍 RA8889 实现液晶仪表HMI UI界面,分为两大部分来介绍,本期介绍如何制作UI界面,其中包括使用PS软件制作静态类UI
    的头像 发表于 02-25 15:27 889次阅读
    第二篇 RA8889 实现酷炫车载液晶仪表系列视频: <b class='flag-5'>UI</b>类<b class='flag-5'>界面</b>介绍

    用DevEco Studio模拟器这些能力,没真机也能高效调测鸿蒙原生应用

    问题,如果UI界面中存在过度的布局计算,冗余的元素绘制,将会带来设备资源的大量开销,造成响应性能的衰退。 随着鸿蒙生态的快速发展,越来越多的开发者投身于
    的头像 发表于 01-08 16:04 1167次阅读
    用DevEco Studio模拟器这些能力,没真机也能高效调测<b class='flag-5'>鸿蒙</b>原生应用

    鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II

    ,职责分离,平台抽象,不同平台组合打包,有效解决平台不一致问题 参考资料 鸿蒙Flutter实战:01-搭建开发环境 鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙 Fl
    发表于 12-26 14:59