我在我的Flutter项目之一中使用了 StaggeredGridView 。根据数据的可用性,我不想加载几个区块。
例如。我正在显示5个图块,其中3个图块取决于网络上可用的数据。有时可能需要10到15秒。现在,如果我返回一个Container()直到加载数据,那么它也将保留整个布局中的空间。
如果数据不可用或加载时间太长,我只是不想将该图块添加到网格中。加载后,应该显示它。
提前谢谢
答案 0 :(得分:2)
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.
}
)
}
示例代码
答案 1 :(得分:2)
在创建StaggeredGridView
时,请设置staggeredTiles
属性,并确保传入StaggeredTile.fit(1)
来表示要隐藏的图块。这样,磁贴将包裹其内容,因此,如果没有内容,它将被隐藏。