如果用户在平板电脑设备上,我需要更改应用程序中的文本高度。最简单的方法是在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祖先 传递给MediaQuery.of()的上下文。发生这种情况是因为 您没有WidgetsApp或MaterialApp小部件(那些小部件 引入MediaQuery),否则如果您使用的上下文出现 从这些小部件上方的小部件中获取。
设置ThemeData时应如何检查设备类型?
答案 0 :(得分:0)
我使用的解决方案是等待构建第一页,使用其上下文确定设备宽度,然后使用块模式监听状态更改,将结果“传递”回MaterialApp。