为了使用整个宽度或高度,我使用double.infinity,但是通过一些颤动样本,我注意到许多人使用MediaQuery.of(context).size.width或height。我浏览了文档,但是在这两者之间以及何时使用哪一个都具有相同功能方面没有提到任何区别。它们特定于特定的小部件吗?
double.infinity
MediaQuery.of(context).size.width
height
区别可以总结为:
通常,您会想使用double.infinity,但并非总是可能的。
一些小工具让自己的孩子一样大,因为他们想成为(Column,ListView,OverflowBox…)。在这种情况下,使用double.infinity会产生一个悖论:
Column
ListView
OverflowBox
MediaQuery在这些情况下使用是不好的。除非您要创建类似于的窗口小部件,否则您几乎不需要这样做Scaffold。
MediaQuery
Scaffold
这就是诸如此类的小部件IntrinsincHeight派上用场的地方。这些小部件能够解决这一矛盾,因此具有有效的布局。
IntrinsincHeight