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