如何在颤动中制作具有不同图像高度的交错网格视图?
How to make a staggered grid view with varying image height in flutter?
我想要一个带有 Card
小部件的交错网格视图,我希望卡片的高度取决于正在加载的图像的高度。
由于我的构建方法太长,这里是我在 gist 中的卡片视图代码:
https://gist.github.com/brendoncheung/2026a64410eddde20fa8ec740bbb9d84
我认为第 7 行的 SizedBox
可以使卡片具有恒定的高度,但是如果我删除 SizedBox
它会崩溃。
如果我删除 SizedBox
,那么我会得到这个错误:
RenderFlex children have non-zero flex but incoming height constraints
are unbounded.
我已确保所有 Column
和 Row
小部件的 parents 没有未绑定约束。
这是我的 StaggeredGridView
代码:
@override
Widget build(BuildContext context) {
return StaggeredGridView.countBuilder(
crossAxisCount: 2,
itemCount: items.length,
itemBuilder: (context, index) => ItemWidget(
item: items[index],
onTap: (item) => Navigator.of(context).push(MaterialPageRoute(
builder: (context) => DetailItemScreen(
item: item,
)))),
staggeredTileBuilder: (index) => StaggeredTile.fit(1),
);
}
下面这 2 张图片是卡片小部件,另一张是调试油漆,
将我的 StaggeredGridView
设置与您的设置进行比较,唯一不同的是,我的设置有这两个有助于解决视口问题的设置。
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
但我同意大小的盒子可能使高度相同。
我想要一个带有 Card
小部件的交错网格视图,我希望卡片的高度取决于正在加载的图像的高度。
由于我的构建方法太长,这里是我在 gist 中的卡片视图代码:
https://gist.github.com/brendoncheung/2026a64410eddde20fa8ec740bbb9d84
我认为第 7 行的 SizedBox
可以使卡片具有恒定的高度,但是如果我删除 SizedBox
它会崩溃。
如果我删除 SizedBox
,那么我会得到这个错误:
RenderFlex children have non-zero flex but incoming height constraints are unbounded.
我已确保所有 Column
和 Row
小部件的 parents 没有未绑定约束。
这是我的 StaggeredGridView
代码:
@override
Widget build(BuildContext context) {
return StaggeredGridView.countBuilder(
crossAxisCount: 2,
itemCount: items.length,
itemBuilder: (context, index) => ItemWidget(
item: items[index],
onTap: (item) => Navigator.of(context).push(MaterialPageRoute(
builder: (context) => DetailItemScreen(
item: item,
)))),
staggeredTileBuilder: (index) => StaggeredTile.fit(1),
);
}
下面这 2 张图片是卡片小部件,另一张是调试油漆,
将我的 StaggeredGridView
设置与您的设置进行比较,唯一不同的是,我的设置有这两个有助于解决视口问题的设置。
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
但我同意大小的盒子可能使高度相同。