Closed3

flutter_staggered_grid_viewの使い方を間違えてた件

enoiuenoiu

1列で表示されるListView(Flutter標準Widget)に対して、2列で表示するためにflutter_staggered_grid_viewを使っている。
https://pub.dev/packages/flutter_staggered_grid_view

今まで2列表示のためにStaggeredGridを使っていた。

Scrollbar(
              child: StaggeredGrid.count(
                crossAxisCount: 2,
                axisDirection: AxisDirection.down,
                children: List.generate(
                  scores.length,
                  (index) {
                    return _card(scores[index]);
                  },
                ),
              ),
            )
enoiuenoiu

しかし、これだとスクロールできない問題があることに気づいた。

pub.devにある説明を見てみると、Staggeredは少数のアイテム用であり、スクロールはできないらしい。

This layout is intended for a small number of items. I didn't find, for the moment, a performant algorithm which would work in a Sliver context, that's why this is not a GridView and therefore there are no SliverStaggeredGrid.

Grid properties

enoiuenoiu

スクロールできるようにするには、Masonry (MasonryGridView)を使う。

This layout facilitates the browsing of uncropped peer content. Container heights are sized based on the widget size.
https://pub.dev/packages/flutter_staggered_grid_view より

Scrollbar(
              child: MasonryGridView.count(
                crossAxisCount: 2,
                itemCount: scores.length,
                itemBuilder: (context, index) {
                  return _card(scores[index]);
                },
              ),
            );
このスクラップは2023/03/01にクローズされました