我不需要访问mediaquery方法,只需返回本地设备高度和宽度的任何内容即可。我要实现的是一个反应式主题,该主题将根据设备的大小缩放文本大小。
答案 0 :(得分:0)
这正是我在应用程序中所做的事情,我也不想使用mediacontext(因为有时我没有上下文),请看以下示例:
https://github.com/lhcdims/statemanagement02
尝试查看lib / ScreenVariables.dart中的“ sv”类
然后在main.dart中调用sv.init(),然后可以在任何dart文件中的任何位置使用sv.screenwidth,sv.defaultfontsize ...等。
答案 1 :(得分:0)
这样做很简单。这是我在StatefulWidget中执行的操作:
class MyPage extends StatefulWidget {
@override
_MyPageState createState() => _MyPageState();
}
class _MyPageState extends State<MyPage> {
var screenHeight = window.physicalSize.height / window.devicePixelRatio;
var screenWidth = window.physicalSize.width / window.devicePixelRatio;
. . . .
. . . .
. . . .
答案 2 :(得分:-1)
您不能直接在build方法之外访问Context对象。您可以将Context对象从build方法内部传递到单独的build函数。
Widget build(BuildContext context){
return Container(
children: buildChildren(context)
);
}
Widget buildChildren(BuildContext context){
...
}