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
Dart 如何根据父元素调整图像大小?_Dart_Flutter - Fatal编程技术网

Dart 如何根据父元素调整图像大小?

Dart 如何根据父元素调整图像大小?,dart,flutter,Dart,Flutter,你们如何根据父元素的高度和宽度保持图像大小?从我当前的代码中,我得到了图像溢出错误。我没有为网格指定任何高度/宽度,我希望它能够覆盖整个网格空间,并自行调整大小 现在,网格已自动将自身划分为列和行 GridView.builder( controller: _scrollController, scrollDirection: Axis.vertical, gridDelegate: SliverGridDelegateWithFixedCrossAxisCo

你们如何根据父元素的高度和宽度保持图像大小?从我当前的代码中,我得到了图像溢出错误。我没有为网格指定任何高度/宽度,我希望它能够覆盖整个网格空间,并自行调整大小

现在,网格已自动将自身划分为列和行

GridView.builder(
      controller: _scrollController,
      scrollDirection: Axis.vertical,
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 2,
      ),
      itemCount: snapitem.length,
      itemBuilder: (context, int index) {
        return InkWell(
          child: Card(
            child: Column(
              children: <Widget>[
                GridTile(
                  child: CachedNetworkImage(
                    imageUrl: snapitem[index].poster.toString(),
                    placeholder: Center(
                      child: CircularProgressIndicator(),
                    ),
                    errorWidget: Icon(Icons.broken_image),
                    fit: BoxFit.fill,
                  ),
                ),
                ButtonTheme.bar(
                  child: ListTile(
                    title: Text(
                      snapitem[index].title,
                      style: TextStyle(
                        color: Colors.white,
                        fontWeight: FontWeight.w700,
                      ),
                    ),
                  ),
                )
              ],
            ),
          ),
          splashColor: Colors.deepPurpleAccent,
        );
      },
    );
GridView.builder(
控制器:\ u滚动控制器,
滚动方向:轴垂直,
gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(
交叉轴计数:2,
),
itemCount:snapitem.length,
itemBuilder:(上下文,int索引){
回墨槽(
孩子:卡片(
子:列(
儿童:[
网格(
子:CachedNetworkImage(
imageUrl:snapitem[index]。poster.toString(),
占位符:中心(
子对象:CircularProgressIndicator(),
),
errorWidget:图标(图标。损坏的图像),
fit:BoxFit.fill,
),
),
钮扣柄(
孩子:ListTile(
标题:正文(
snapitem[索引]。标题,
样式:TextStyle(
颜色:颜色,白色,
fontWeight:fontWeight.w700,
),
),
),
)
],
),
),
splashColor:Colors.deepPurpleAccent,
);
},
);
我想要实现的是

我想要网格a卡,每张卡上面都有一个图像,底部是ListTile

使用mediaquery

如果您希望您的图像为设备宽度的一半,可以将其用作:

width: Mediaquery.of(context).size.width / 2
告诉您设备屏幕大小的不是MediaQuery()

第一个问题,如果您不使用页眉或页脚,为什么要使用网格块?从网格_tile.dart:

if (header == null && footer == null)
  return child;
因此,除非您打算添加页眉或页脚,否则不要使用网格块。接下来

由于CachedNetworkImage现在是该列的直接子级,因此可以将其包装为展开的。这将忽略CachedNetworkImage中的任何大小信息,只将其放入可用空间

看 和

要获得更多关于Flatter的帮助,请务必在每周三的“媒体”上查看Flatter社区和我们的现场帮助课程