【发布时间】:2021-01-27 01:32:12
【问题描述】:
我有一个 GridView 小部件嵌套在一个 SizedBox 小部件内,该小部件嵌套在一个容器小部件内
Container(
padding: EdgeInsets.all(10),
alignment: Alignment(0, 0),
child: SizedBox(
width: min(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height) -
20,
height: min(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height) -
20,
child: GridView.count(
padding: EdgeInsets.all(0),
crossAxisCount: sqrt(tiles.length).round(),
mainAxisSpacing: 5,
crossAxisSpacing: 5,
children: tiles,
shrinkWrap: true,
),
),
),
Container Widget 的边缘插入为 10,因此在 SizedBox 中,我希望宽度和高度为最小屏幕宽度/高度减去该边缘插入(所以减去 20,因为它在每一侧)。
如何读取父窗口小部件的值以便知道它是 edgeInset? MediaQuery 可以通过上下文来完成吗?
我知道我可以早先将边缘插图存储为变量并在两个地方都使用它,但是当我尝试学习 Flutter 时,我更好奇是否有办法读取父级的值/属性小部件,以便他们的孩子可以随时引用它们。
【问题讨论】: