Flutter 在网格中固定数量的小部件后添加分隔符
我使用Flutter 在网格中固定数量的小部件后添加分隔符,flutter,dart,Flutter,Dart,我使用GridView.Builder显示了5000多幅图像。我正在从firebase实时数据库获取数据。最初我只获取50条记录,但当用户到达网格列表的底部时,我会获取另外50条记录,以此类推。代码运行良好 现在,在每200个图像之后,我想显示一个容器小部件,具有高度:250和宽度:MediaQuery.of(context).size.width。我该怎么做 StreamBuilder( stream: listStream, builder: (context
GridView.Builder
显示了5000多幅图像。我正在从firebase实时数据库获取数据。最初我只获取50条记录,但当用户到达网格列表的底部时,我会获取另外50条记录,以此类推。代码运行良好
现在,在每200个图像之后,我想显示一个容器
小部件,具有高度
:250和宽度
:MediaQuery.of(context).size.width
。我该怎么做
StreamBuilder(
stream: listStream,
builder: (context, AsyncSnapshot<List<WatchFace>> snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
} else {
return GridView.builder(
itemCount: snapshot.data.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisSpacing: 1,
crossAxisSpacing: 1,
childAspectRatio: MediaQuery.of(context).size.width /
(MediaQuery.of(context).size.height / 1.3),
),
controller: _controller,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding:
const EdgeInsets.symmetric(vertical: 2, horizontal: 3),
child: Container(
decoration: BoxDecoration(
border:
Border.all(color: Colors.pinkAccent, width: 0.8),
borderRadius: BorderRadius.circular(8),
),
child: Center(
child: Text('${snapshot.data[index].date}'), // Later I will display network image here.
),
),
);
});
}
},
),
StreamBuilder(
流:listStream,
生成器:(上下文,异步快照){
如果(!snapshot.hasData){
返回中心(子项:CircularProgressIndicator());
}否则{
返回GridView.builder(
itemCount:snapshot.data.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
交叉轴计数:2,
主轴间距:1,
横轴间距:1,
childAspectRatio:MediaQuery.of(context).size.width/
(MediaQuery.of(context.size.height/1.3),
),
控制器:_控制器,
itemBuilder:(构建上下文,int索引){
返回填充(
衬垫:
常数边集对称(垂直:2,水平:3),
子:容器(
装饰:盒子装饰(
边界:
边框。全部(颜色:Colors.pinkAccent,宽度:0.8),
边界半径:边界半径。圆形(8),
),
儿童:中心(
child:Text('${snapshot.data[index].date}'),//稍后我将在这里显示网络图像。
),
),
);
});
}
},
),
这应该可以:
列(mainAxisSize:mainAxisSize.min)包装您的项目
GridView
的childAspectRatio
东西。它将强制每个单元格的大小,因此无法添加空间。你可能想看看
if(index != 0 && index % 200 == 0)
YourContainer(),