MediaQuery是一个用于相应设备状态变化的工具,比如屏幕旋转, 深色模式切换,分辨率切换等等

API

condition详解

上述API中
matchMediaSync(condition: string) : mediaQuery.MediaQueryListener condition是一个字符串, 这个字符串不是乱填的.是有格式的,接下来我们来谈谈这里应该怎么填写
格式: [媒体类型] [逻辑操作符] [(媒体特征: 值)]
我们只需要掌握三点即可

  • 媒体类型 //媒体类型默认为screen.可忽略
  • 逻辑操作符
    • and : 多条件需要同时满足
    • , 或者 or : 任一条件满足即可
    • not : 条件取反
  • 媒体特征 :
    • width / hight 视口宽高
    • orientation 屏幕方向
    • dark-mode 深色模式状态
    • device-type 设备类型分类
    • round-screen 是否为原圆形类型
    • aspect-ratio 屏幕宽高比
    • resolution 物理屏幕分辨率

使用方式案例

// 创建横屏监听器
// 获取对应的mediaQuery.MediaQueryListener
const landscapeListener = mediaquery.matchMediaSync('(orientation: landscape)');

landscapeListener.on('change', (result) => {
  if (result.matches) {
    console.log('切换到横屏布局');
    AppStorage.SetOrCreate('isLandscape', true);
  } else {
    console.log('切换到竖屏布局');
    AppStorage.SetOrCreate('isLandscape', false);
  }
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐