【发布时间】:2020-01-24 18:47:20
【问题描述】:
如果用户使用的是平板设备,我需要更改整个应用程序的文本高度。最简单的方法是在 MaterialApp 中设置 TextTheme 时调整 TextStyle 的高度值。目前我们通过检查MediaQuery.of(context).size.width > 600来判断用户是否在平板电脑上。所以像:
textTheme: TextTheme(
body1: TextStyle(
fontFamily: 'roboto',
fontWeight: FontWeight.normal,
fontSize: 16.0,
height: MediaQuery.of(context).size.width > 600
? 1.15
: 1.3),
不幸的是,当我们设置主题时,此检查不起作用,因为我们收到错误:
MediaQuery.of() 调用的上下文不包含 媒体查询。从 开始找不到 MediaQuery 祖先 传递给 MediaQuery.of() 的上下文。这可能发生,因为 您没有 WidgetsApp 或 MaterialApp 小部件(这些小部件 引入 MediaQuery),或者如果您使用的上下文出现,它可能会发生 来自这些小部件上方的小部件。
在设置 ThemeData 时我应该如何检查设备类型?
【问题讨论】:
标签: flutter