#flutter #stream-builder #staggered-gridview
Вопрос:
У меня есть макет в flutter, который структурирован следующим образом:
StreamBuilder<datamodel>(
stream: OurDatabase().myDevice(this.key),
builder: (context, snapshot) {
if(!snapshot.hasData){ //Return loading screen }
else {
return StaggeredGridView.count(
crossAxisCount: 2,
crossAxisSpacing: 12.0,
mainAxisSpacing: 12.0,
padding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
children: <Widget> [
//Hardcoded Widgets
for (var i =0; i < 6; i ) CustomWidget(....)
]
//Tilesize is an array of numbers)
StaggeredTile.extent(2, tilesize[0]),
StaggeredTile.extent(1, tilesize[1]),
StaggeredTile.extent(1, tilesize[2]),
StaggeredTile.extent(2,tilesize[3]),
StaggeredTile.extent(2,tilesize[4]),
StaggeredTile.extent(2,tilesize[5]),
StaggeredTile.extent(2,tilesize[6]),
StaggeredTile.extent(2,tilesize[7]),
StaggeredTile.extent(2,tilesize[8]),
}
CustomWidget возвращает виджет в зависимости от размера плитки, который пользователь может изменить при нажатии. Я хотел бы удалить или скрыть плитки в зависимости от состояния потока, который я слушаю. Я использовал виджет «Видимость», однако проблема заключается в расстоянии из-за расстояния между основными осями. Как я могу удалить виджет или устранить проблему с расстоянием? Есть ли способ добавить условие в цикл for, которое отображает виджеты?