【发布时间】:2021-04-07 02:57:05
【问题描述】:
我创建了自定义 ThemeDatas(浅色和深色),当我使用它们启动我的应用程序时,我遇到了 _mulFromInteger() 问题。这是因为我的 ThemeData 中 TextTheme 中的 FontSizes 具有根据屏幕大小而变化的值,为了使这些自适应 FontSizes 我使用包含我的大小配置的类。此类调用 MediaQuery.of(context) 将在功能上修改我的屏幕配置为其值。问题是我在调用我的 SizeConfigurations.init(context) 之前调用了我的 ThemeData(带有 TextTheme)。如果我在创建 MaterialApp 并设置主题之前尝试将我的初始化程序告诉我我使用了没有 MediaQuery 的上下文。知道如何解决这个问题吗?谢谢:)
代码:
@override
Widget build(BuildContext context) {
// When I call SizeConfig().init(context); here it tells me the context doesn't have a MediaQuery
return MaterialApp(
theme: AppTheme.getLightTheme(),
darkTheme: AppTheme.getDarkTheme(),
themeMode: ThemeMode.system,
title: 'App Title',
onGenerateRoute: NavigationRouter.generateRoute,
home: FutureBuilder(
future: jwtOrEmpty,
builder: (context, snapshot) {
SizeConfig().init(context);
…
}
),
);
}
【问题讨论】: