我看了看 GridView
小部件,但其
一个可滚动的二维小组件阵列
我希望网格在水平和垂直方向上都能占据父节点允许的最大面积。或者如果有一些widget可以在允许我们指定行和列的同时进行扩展。一定是有原因的,我可以想到几个用例。
总之,这是我目前的情况。
class NumberButtonsGrid extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Expanded(child: Row(children: <Widget>[
Expanded(child: Text("1"), flex: 1),
Expanded(child: Text("2"), flex: 1),
Expanded(child: Text("3"), flex: 1),
],), flex: 1),
Expanded(child: Row(children: <Widget>[
Expanded(child: Text("4"), flex: 1),
Expanded(child: Text("5"), flex: 1),
Expanded(child: Text("6"), flex: 1),
],), flex: 1),
Expanded(child: Row(children: <Widget>[
Expanded(child: Text("7"), flex: 1),
Expanded(child: Text("8"), flex: 1),
Expanded(child: Text("9"), flex: 1),
],), flex: 1),
Expanded(child: Row(children: <Widget>[
Expanded(child: Text("."), flex: 1),
Expanded(child: Text("0"), flex: 1),
Expanded(child: Text("00"), flex: 1),
],), flex: 1),
],
);
}
}
有没有更好的办法。我觉得很乱。如果我必须在各个单元格中填充不同的小部件怎么办?这将是一个灾难。这感觉就像在 HTML
使用 <div>
.
如果你想禁止GridViewListView的滚动,添加。
physics: NeverScrollableScrollPhysics()
GridViewListView有一个自动展开的行为,所以你需要设置自动展开的功能。宽度 的父部件,如果您的部件被设置为 Axis.vertical
反之亦然。
而且你可以使用 MediaQuery.of(context).size.width * number
根据屏幕大小设置GridView的宽度。