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