当前位置:首页 » 程序代码 » 正文

媒体查询布局,逻辑操作符组合条件,同时查询设置名和横竖屏状态

通过 '(device-type: phone) and (orientation: landscape)' 这个组合条件,同时查询设备名是手机,横屏状态的情况。


import { mediaquery } from '@kit.ArkUI'; //导入媒体查询模块

@Entry
@Component
struct Page8 {
  @State message: string = '';
  @State backColor: Color = Color.White
  //通过 matchMediasync 接口设置媒体查询条件

// 常见设备名:phone tablet tv(智慧屏设置)  car(车机这幅图)  wearable(穿戴设置,如智能手表)
// 其他设备类型(部分场景)
  // liteWearable 轻量级穿戴设备(如手环)。
  // smartVision  智能视觉设备(如 AR/VR 设备)。
  // router 路由器等网络设备。
  // pc 二合一设备或笔记本电脑(需注意不同接口可能要求首字母大写 "PC")
 // 2in1
  private listener0: mediaquery.MediaQueryListener =
    this.getUIContext().getMediaQuery().matchMediaSync('(device-type: phone) and (orientation: landscape)')

  private listener9: mediaquery.MediaQueryListener =
    this.getUIContext().getMediaQuery().matchMediaSync('(device-type: phone) and (orientation: portrait)')

  aboutToAppear(): void {
    //所有监听绑定事件 wb98.com
    this.listener0.on('change', (result: mediaquery.MediaQueryResult) => {
      if (result.matches) {
        this.backColor = Color.Yellow
        this.message = '手机横屏'
      }
    })

    this.listener9.on('change', (result: mediaquery.MediaQueryResult) => {
      if (result.matches) {
        this.backColor = Color.Green
        this.message = '手机竖屏'
      }
    })
  }

  aboutToDisappear(): void {
    //解绑监听
    this.listener0.off('change')
    this.listener9.off('change')
  }

  build() {

    Column() {

      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Medium)
    }
    .width('100%')
    .height('100%')
    .backgroundColor(this.backColor)

  }
}


打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:https://www.wb98.com/post/380.html

arkts  鸿蒙  
    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号