flutter - 使用不包含 MediaQuery 的上下文调用 MediaQuery.of()
问题描述
为什么我会收到此错误???
不是MaterialApp提供的Mediaquery吗?我不太明白。
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: themeBuilder(context),
home: Scaffold(
appBar: AppBar(
title: Text('Title'),
),
body: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'All their equipment and instruments are alive.',
),
Text(
'All their equipment and instruments are alive.',
style: TextStyle(
fontSize: 34,
fontWeight: FontWeight.w700,
),
),
GradientButton(
child: Text('click me!'),
onPressed: () {},
width: MediaQuery.of(context).size.width,
),
TextField()
],
),
),
),
);
}
}
我不知道我在这里做错了什么。它以前工作得很好。
解决方案
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: Text('Title'),
theme: themeBuilder(context),
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
...
GradientButton(
child: Text('click me!'),
onPressed: () {},
width: MediaQuery.of(context).size.width,
),
]
),
);
}
}
试试这个,让我知道它是怎么回事
推荐阅读
- python - CEFpython浏览器在windows上加载空白页,但在mac上完美运行
- python - Python:按条件过滤列表到新列表中
- typescript - 类与接口来描述对象
- c# - 为什么其中一个 navmesh 代理没有移动到下一个航路点?
- c# - 从 IIS 调用相同的 HttpWebRequest 会导致 IIS Express 中的证书错误吗?
- java - 使用retrofit2时如何解决“连接失败”错误?
- github - 如何通过 github api 知道 git pull 请求是否被批准
- git - 是否有使 Robohelp 2019 与 Windows 10 ssh-agent 一起使用的解决方法?
- javascript - 随机歌曲循环不适用于功能
- java - 数学公式