我在我的一个Flutter项目中使用StaggeredGridView。我想根据数据的可用性不加载几块瓷砖。
例如。我正在展示5个图块,其中3个图块取决于网络提供的数据。有时可能需要10到15秒。现在,如果我返回一个Container()直到我的数据被加载,那么它也会在布局中保存整个空间。
如果数据不可用或需要很长时间加载,我只是不想将该磁贴添加到网格中。加载后应显示。
提前感谢你
在创建StaggeredGridView
时,设置staggeredTiles
属性并确保为要隐藏的切片传入StaggeredTile.fit(1)
。这样瓷砖将包装它的内容,所以如果没有内容,它将被隐藏。
Widget build(BuildContext context) {
return StreamBuilder<GridData>(
stream: [Stream end point] // your stream url,
builder: (context, snapshot) {
if (!snapshot.hasData) return LoadingSpinner();
return [View that you want to return]; // Your grid code.
}
)
}
示例代码