flutter_staggered_grid_view 패키지를 이용해 하위 위젯의 동적 높이에 반응하는 그리드뷰를 구현
MasonryGridView.count()
List<double> widgetHeights = [];
List<double> widgetColors = [];
initState() {
//...skip...
for(int i = 0; i < 100; i ++) {
widgetHeights.add((Random().nextInt(256) + 64).toDouble());
widgetColors.add(Color((Random().nextDouble() * 0xFFFFFF)
.toInt()).withOpacity(1));
}
setState(() {});
}
//...widget...
MasonryGridView.count(
padding: EdgeInsets.all(8),
crossAxisCount: 4,
mainAxisSpacing: 8,
crossAxisSpacing: 8,
itemCount: 100,
itemBuilder: (context, index) {
return Container(
height: widgetHeights[index],
color: widgetColors[index],
);
},
);