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


     媒体查询

    说明:  从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需要去注册的回调,如果参数缺省则去注册该句柄下所有的回调。

    示例:

    1. import mediaquery from '@ohos.mediaquery'
    2. let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件
    3. function onPortrait(mediaQueryResult) {
    4. if (mediaQueryResult.matches) {
    5. // do something here
    6. } else {
    7. // do something here
    8. }
    9. }
    10. listener.on('change', onPortrait) // 注册回调
    11. listener.off('change', onPortrait) // 去注册回调

    MediaQueryResult

    属性

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

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

    示例

    1. import mediaquery from '@ohos.mediaquery'
    2. let portraitFunc = null
    3. @Entry
    4. @Component
    5. struct MediaQueryExample {
    6. @State color: string = '#DB7093'
    7. @State text: string = 'Portrait'
    8. listener = mediaquery.matchMediaSync('(orientation: landscape)')
    9. onPortrait(mediaQueryResult) {
    10. if (mediaQueryResult.matches) {
    11. this.color = '#FFD700'
    12. this.text = 'Landscape'
    13. } else {
    14. this.color = '#DB7093'
    15. this.text = 'Portrait'
    16. }
    17. }
    18. aboutToAppear() {
    19. portraitFunc = this.onPortrait.bind(this) //bind current js instance
    20. this.listener.on('change', portraitFunc)
    21. }
    22. build() {
    23. Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
    24. Text(this.text).fontSize(24).fontColor(this.color)
    25. }
    26. .width('100%').height('100%')
    27. }
    28. }

    鸿蒙Next核心技术分享

    1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

    2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

    3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

     4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

     5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

    6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

    7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

     8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  

  • 相关阅读:
    单字段纵向分栏
    2022年全网最全最细最流行的自动化测试工具有哪些?
    Elasticsearch:Metadata fields - 元数据字段介绍
    Ribbon的轮询策略实现方法
    艾美捷PEG-2000 DMG解决方案
    【微服务】Gunicorn服务器替换Flask自带的WSGI Server服务器
    昇思25天学习打卡营第1天 | 快速入门
    GemBox.Bundle 47.0.1315 最新Crack
    JavaScript面试题整理(一)
    Java_位运算符简述
  • 原文地址:https://blog.csdn.net/2301_76813281/article/details/139248333