【お知らせ】みんプロ式Flutter講座は2026年4月末をもって新規販売を終了いたします。詳しくはこちら →
[Flutter]List.generateとListView.builderは何が違うのか
このページには広告が含まれる場合があります。
Flutterにおいて、予め骨格が決まっていて中身のデータだけが違う複数のWidgetをひとまとめに扱う場合に
List.generateメソッドを使うやり方と

API docs for the List.generate constructor from the Class List class from the dart:core library, for the Dart programming language.
ListView.builderメソッドを使うやり方がありますが、

API docs for the ListView.builder constructor from Class ListView from the widgets library, for the Dart programming language.
両者の違いは、
1)List.generateメソッドはWidgetに限定されない。つまり、戻り値の型はListなので、中身はWidgetに限らずStringでも何にでも使うことができ、並べ方が特定されているわけではありません。
つまり、同一クラスの複数のインスタンスをまとめて扱うだけなので並べ方はColumnやRowなどで指定する必要があります。
2)一方、ListView.builderの中身はWidgetに限定され、かつ戻り値はListViewなので縦方向か横方向に一列に並ぶWidgetになります。
3)また、List.generateでもListView.builderと同じような表示に仕方はできますが、ListViewの場合はそのリスト内でスクロールできますが、List.generateの場合はリスト内でのスクロールはできないという違いがあるので、List.generateの場合はSingleChildScrollViewなどでスクロールできるように設定しておかないと画面からオーバーフローしてしまうことがあります。

API docs for the SingleChildScrollView class from the widgets library, for the Dart programming language.
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)









