颤振中的不可滚动网格

时间:2020-05-17 03:02:04

标签: flutter flutter-layout

我看了GridView小部件,但它是

可滚动的二维小部件数组

我希望网格在水平和垂直方向上都占据父级所允许的最大区域。或者,如果有一些小部件在扩展的同时允许我们指定行和列。我一定能想到几个用例。

无论如何,这就是我目前的情况,

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>中创建表格。

1 个答案:

答案 0 :(得分:0)

如果要禁用GridView / ListView的滚动,请添加:

physics: NeverScrollableScrollPhysics()

GridView / ListView具有自动扩展行为,因此如果您的窗口小部件设置为Axis.vertical,并且您需要将其设置为MediaQuery.of(context).size.width * number,则需要设置父窗口小部件的 width

您可以使用@Getter @Setter @ToString class GetUserInfoDTO { private String id; private String name; } @Getter @Setter @ToString class PostUserInfoDTO { private String name; private Integer age; private String address; private String gender; private String email; private Date joinDate; } 根据屏幕尺寸设置GridView的宽度。