【发布时间】:2020-12-21 23:39:15
【问题描述】:
开始学习 Flutter,所以我在想是否可以创建一个返回 ThemeData 对象的函数,但在这个函数内部我想使用 MediaQuery.of(context)。我的意思是,我知道我可以创建这样的函数,但是如果我在其中使用MediaQuery.of(context),我会出错
(MediaQuery.of() called with a context that does not contain a MediaQuery) 抱怨缺少 MediaQueryProvider。我知道我可以在 MaterialApp 的子元素中使用 MediaQuery,但我现在遇到了设计问题。想象一下:
ThemeData getTheme(BuildContext context) {
// I wanna be able to call MediaQuery.of(contex) here
return ThemeData();
}
MaterialApp(
home: home,
// the getTheme() must be able to use MediaQuery. It takes a context and returns a ThemeData object
theme: theme.getTheme(context),
routes: routes,
)
有办法吗?或事件更好,我应该这样做吗?
感谢您的帮助。
【问题讨论】:
-
好吧,我认为不是,该链接帮助我理解了问题,但它无助于找到解决方案
-
好的。稍后我会深入了解。