Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 将特定高度设置为颤振';s卡小部件_Flutter_Dart - Fatal编程技术网

Flutter 将特定高度设置为颤振';s卡小部件

Flutter 将特定高度设置为颤振';s卡小部件,flutter,dart,Flutter,Dart,我正在尝试扩展一个给定的卡片网格的高度,这样它们就能够容纳比当前更多的信息。这些卡由收缩的GridView.count()包装,因为我将在这个小部件下面放置更多的东西 现在,卡片看起来像这样,你可以看到其中一张溢出了底部的文本,这是一种不希望出现的行为(特别是当我希望卡片有一些底部填充时): 在这种情况下,我想知道是否可以手动更改卡的高度。我可能会保留这个具体配置并删除一些信息,因为我喜欢卡目前保持其1x1比例的事实,但出于好奇,我想知道如何做到这一点 我尝试了很多方法,比如用容器或大小框来包

我正在尝试扩展一个给定的卡片网格的高度,这样它们就能够容纳比当前更多的信息。这些卡由收缩的
GridView.count()
包装,因为我将在这个小部件下面放置更多的东西

现在,卡片看起来像这样,你可以看到其中一张溢出了底部的文本,这是一种不希望出现的行为(特别是当我希望卡片有一些底部填充时):

在这种情况下,我想知道是否可以手动更改卡的高度。我可能会保留这个具体配置并删除一些信息,因为我喜欢卡目前保持其1x1比例的事实,但出于好奇,我想知道如何做到这一点

我尝试了很多方法,比如用
容器或
大小框来包装
卡片
小部件,并手动设置高度,但这些方法都没有改变任何东西

我想问题可能出在
GridView
本身。这就是它的样子:

return FutureBuilder<List<Event>>(
        future: new EventsService().getEventsForCoords(),
        builder: (context, AsyncSnapshot<List<Event>> snapshot) {
          if (snapshot.hasData) {
            return GridView.count(
                crossAxisCount: 2,
                shrinkWrap: true,
                children: generateProximityEventCards(snapshot.data));

          } else {
            return CircularProgressIndicator();
          }
        });
因此,总结一下:我如何改变卡片的高度,使它们能够容纳更多的信息


谢谢

GridView并不是真正设计成具有不同大小的磁贴。一个好的选择是使用这个包

现在您的瓷砖大小甚至可以是动态的

若要在某个地方自动填充一些可变长度的文本,可以使用包

List<Widget> generateProximityEventCards(List<Event> eventList) {
    // Render each card
    return eventList.map((Event ev) {
      return Card(
          semanticContainer: true,
          clipBehavior: Clip.antiAliasWithSaveLayer,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(10.0),
          ),
          elevation: 5,
          margin: EdgeInsets.all(7),
          child: SizedBox(
            height: 600,
            child: Column(
              children: <Widget>[
                Image(
                  alignment: Alignment.topCenter,
                  fit: BoxFit.fitWidth,
                  image: ev.imageUrl,
                  height: 110,
                  width: 200,
                ),
                Container(
                  child: Text(ev.name),
                  padding: EdgeInsets.only(left: 10, right: 10),
                ),
                Container(
                  child: Text(ev.startDate.toString()),
                  padding: EdgeInsets.only(left: 10, right: 10),
                ),
                Container(
                  child: Text(ev.address),
                  padding: EdgeInsets.only(left: 10, right: 10),
                ),
              ],
            ),
          ));
    }).toList();
  }