[Flutter]List.generateとListView.builderは何が違うのか

このページには広告が含まれる場合があります。

 

Flutterにおいて、予め骨格が決まっていて中身のデータだけが違う複数のWidgetをひとまとめに扱う場合に

List.generateメソッドを使うやり方と

ListView.builderメソッドを使うやり方がありますが、

両者の違いは、

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などでスクロールできるように設定しておかないと画面からオーバーフローしてしまうことがあります。

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

【無料】生年月日を入力するだけ!

あなたの知らない「あなた」がわかる
無料診断ツール

あすコロ式
使命・性格タイプ診断

生年月日を入力するだけで144通りの性格パターンを診断。あなたの知らない「本当のあなた(生きる目的・使命)」と「偽りのあなた(無意識の思いグセ)」がわかります!

今すぐ無料で診断する ▶

TOP