Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 GridLayout项溢出抖动_Flutter_Flutter Layout - Fatal编程技术网

Flutter GridLayout项溢出抖动

Flutter GridLayout项溢出抖动,flutter,flutter-layout,Flutter,Flutter Layout,我有一个gridlayout,griditems基本上是: 卡 有两件事: 形象 正文 但是图像是通过互联网加载的,因此有时它会溢出网格项目框,并且这个框不会改变高度,我想要的是图像应该是固定大小的 这是我的代码:(我怎么做?) 导入“包装:颤振/材料.省道”; 导入“../models/dbModel.dart”; 类GridLayout扩展了无状态小部件{ 最后清单m; var-appContext; GridLayout(this.m,this.appContext); 小部件构建(上

我有一个gridlayout,griditems基本上是: 卡 有两件事:

  • 形象
  • 正文
但是图像是通过互联网加载的,因此有时它会溢出网格项目框,并且这个框不会改变高度,我想要的是图像应该是固定大小的

这是我的代码:(我怎么做?)

导入“包装:颤振/材料.省道”;
导入“../models/dbModel.dart”;
类GridLayout扩展了无状态小部件{
最后清单m;
var-appContext;
GridLayout(this.m,this.appContext);
小部件构建(上下文){
返回GridView.builder(
gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount:2,crossAxisSpacing:7.0,mainAxisSpacing:7.0),
填充:常数边集全部(10.0),
itemBuilder:(上下文,i){
返回GridItem(appContext,m[i]);
},
itemCount:m.length,
);
}
}
类GridItem扩展了无状态小部件{
最终应用上下文;
最终数据库模型;
GridItem(this.appContext,this.dbModel);
小部件构建(上下文){
返回手势检测器(
onTap:(){},
孩子:卡片(
子:列(
儿童:[
dbModel.img==“NOLINK”?Image.network(“https://i.ibb.co/Vv6cPj4/404.png“,):Image.network(dbModel.img),
容器(
填充:所有边缘设置(10.0),
子项:文本(“${dbModel.title}”),
),
],
),
),
);
}
}

使用容器,并在容器内声明图像的宽度和高度为 你想要的

new Container(
    width: 60.0
    height: 60.0,
    decoration: new BoxDecoration(
      image: new DecorationImage(
      image:Image.network("https://i.ibb.co/Vv6cPj4/404.png",),
      //repeat: ImageRepeat.repeat,
    ),
   ),
 )

我希望,这将对您有所帮助。

您需要使用
扩展的
包装图像小部件-
image.network
&添加
fit:BoxFit.cover,

工作代码:

Widget build(context) {
    return GestureDetector(
      onTap: () {},
      child: Card(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch, //add this
          children: <Widget>[
            Expanded(
              child: Image.network(
                "https://i.ibb.co/Vv6cPj4/404.png",
                fit: BoxFit.cover, // add this
              ),
            ),
            Center(
              child: Container(
                padding: EdgeInsets.all(10.0),
                child: Text("Title under"),
              ),
            ),
          ],
        ),
      ),
    );
  }
小部件构建(上下文){ 返回手势检测器( onTap:(){}, 孩子:卡片( 子:列( crossAxisAlignment:crossAxisAlignment.stretch,//添加此 儿童:[ 扩大( 孩子:Image.network( "https://i.ibb.co/Vv6cPj4/404.png", fit:BoxFit.cover,//添加此 ), ), 居中( 子:容器( 填充:所有边缘设置(10.0), 子项:文本(“标题下”), ), ), ], ), ), ); }
输出:


也有同样的问题,但当我试图在列中使用手势检测器时,什么都没有出现??我不知道为什么要给图片自定义高度?
Widget build(context) {
    return GestureDetector(
      onTap: () {},
      child: Card(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch, //add this
          children: <Widget>[
            Expanded(
              child: Image.network(
                "https://i.ibb.co/Vv6cPj4/404.png",
                fit: BoxFit.cover, // add this
              ),
            ),
            Center(
              child: Container(
                padding: EdgeInsets.all(10.0),
                child: Text("Title under"),
              ),
            ),
          ],
        ),
      ),
    );
  }