Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter flatter是全局获取MediaQuery.of(context).size.width和height的最佳方法_Flutter_Dart - Fatal编程技术网

Flutter flatter是全局获取MediaQuery.of(context).size.width和height的最佳方法

Flutter flatter是全局获取MediaQuery.of(context).size.width和height的最佳方法,flutter,dart,Flutter,Dart,我是否需要为每个小部件获取MediaQuery.of(context).size.width,或者是否有一种方法可以一次获取它,可能是在main.dart中,将其存储并在每个文件和每个类中都可用?最好不需要通过任何一个。归根结底,这不是一个永远都不会改变的价值观,所以希望你能得到它一次 我来自React Native,只需运行var{width,height}=require('Dimensions')。get('window')在styles.js文件中使用一次。对我有效的一种方法是使用常量文

我是否需要为每个小部件获取
MediaQuery.of(context).size.width
,或者是否有一种方法可以一次获取它,可能是在
main.dart
中,将其存储并在每个文件和每个类中都可用?最好不需要通过任何一个。归根结底,这不是一个永远都不会改变的价值观,所以希望你能得到它一次


我来自React Native,只需运行
var{width,height}=require('Dimensions')。get('window')在styles.js文件中使用一次。

对我有效的一种方法是使用常量文件。 在
constant.dart
中,我有全局变量
double deviceWidth
double deviceHeight

,

在您第一次使用它之前,请确保在具有构建上下文的第一个小部件中初始化它们


然后,您可以将
constant.dart
导入每个需要
MediaQuery
大小的视图,并使用声明的
deviceHeigth和
deviceWidth`变量

,我认为这不是MediaQuery的目的。比如,即使它影响到每个文件,只要声明它,它也不会改变任何东西。你必须积极地使用它,将应用程序的不同部分扔掉。@key,但它可以用来做出响应性强的设计。没有必要一次又一次地获取宽度和高度,因为它们永远不会改变。就像在React Native中一样,只需获取一次并将其分配给变量。