如何在Dart中使用window.matchMedia?
我找到了相应的方法:
MediaQueryList matchMedia(String query)和"MediaQueryList“方法:
void addListener(MediaQueryListListener listener)但是:MediaQueryListListener没有构造函数,看起来像是生成的存根。
我有JS示例
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的能力。
发布于 2013-11-03 20:14:21
作为在评论中指出,它目前似乎还没有在Dart中实现。
但是,您可以使用dart:js这样做:
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');
}
}https://stackoverflow.com/questions/19745361
复制相似问题