【问题标题】:How to create and use responsive themes in Flutter?如何在 Flutter 中创建和使用响应式主题?
【发布时间】:2018-09-28 05:44:10
【问题描述】:
我在尝试从 MaterialApp 访问 MediaQuery 时收到 MediaQuery.of() called with a context that does not contain a MediaQuery.:
return new MaterialApp(
title: 'Flutter Demo',
theme: getTheme(MediaQuery.of(context)),
home: new Container(),
);
【问题讨论】:
标签:
flutter
flutter-layout
【解决方案1】:
改用builder 或MaterialApp。这样您就可以在您的Theme 中使用MatetialApp 实例化的MediaQuery。
new MaterialApp(
builder: (context, child) {
return new Theme(
data: getTheme(MediaQuery.of(context)),
child: child,
);
},
home: new ChatScreen(),
),
【解决方案2】:
return new MaterialApp(
title: 'Flutter Demo',
theme: getTheme(new MediaQueryData.fromWindow(ui.window)),
home: new Container(),
);
感谢君特 :)