首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dart中的"matchMedia“支持

Dart中的"matchMedia“支持
EN

Stack Overflow用户
提问于 2013-11-02 18:31:36
回答 1查看 497关注 0票数 2

如何在Dart中使用window.matchMedia?

我找到了相应的方法:

代码语言:javascript
复制
MediaQueryList matchMedia(String query)

和"MediaQueryList“方法:

代码语言:javascript
复制
void addListener(MediaQueryListListener listener)

但是:MediaQueryListListener没有构造函数,看起来像是生成的存根。

我有JS示例

代码语言:javascript
复制
var mq = window.matchMedia( "(min-width: 500px)" );

// media query event handler
if (matchMedia) {
    var mq = window.matchMedia("(min-width: 500px)");
    mq.addListener(WidthChange);
    WidthChange(mq);
}

// media query change
function WidthChange(mq) {

    if (mq.matches) {
        // window width is at least 500px
    }
    else {
        // window width is less than 500px
    }

}

具有良好的支持http://caniuse.com/#feat=matchmedia的能力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-03 20:14:21

作为在评论中指出,它目前似乎还没有在Dart中实现。

但是,您可以使用dart:js这样做:

代码语言:javascript
复制
import 'dart:js';

main() {
  if (context['matchMedia'] != null) {
    final mq = context.callMethod('matchMedia', ['(min-width: 500px)']);
    mq.callMethod('addListener', [widthChange]);
    widthChange(mq);
  }
}
widthChange(mq) {
  if (mq['matches']) {
    print('window width is at least 500px');
  } else {
    print('window width is less than 500px');
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19745361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档