JPFlutterの基本レイアウトListViewListViewListViewListViewは直線的に配置されたスクロール可能なウィジェットのリストです。一覧作成を行う場合は一番一般的なスクロールウィジェットとなります。それでは細かいところを一つずつみていきましょう。ListViewを構築するためには4つの方法があります。デフォルトコンストラクタ(ListView())でリストを構築することが可能です。インスタンス生成時に明示的に「List」を受け取るため、表示するリストが少ない場合に利用するのがいいでしょう。「ListView.builder」で作成すると、実際に表示されている子要素のみビルダーが呼び出されるため随時読み込みなど、多数(または無限)のリストを表示する場合に利用する作成方法です。「ListView.separated」で作成すると、表示する項目と項目の間に区切りをつけることが可能になります。リストの件数が固定の場合にのみ利用できる作成方法です。「ListView.custom」で作成すると、「SliverChildDelegate」を追加してカスタマイズできます。今回は、1~3について説明していきます。デフォルトコンストラクタ主に、表示する要素が事前にわかっている場合に利用する書き方です。簡単にリスト表示が可能な書き方になります。読み込みと同時に全てのリストを描画するためあまり量の多いリストには向いていません。メニューの一覧や設定画面などで利用すると良いかと思います。}}デフォルトコンストラクタの場合はchildrenのみが必須項目です。他の作成方法と違い、builderがないため、事前にウィジェットの一覧を作成しておく必要があります。以下のように記載すれば設定画面ぽくなります。}}このように事前にウィジャット一覧を作成することでメニュー一覧を作ることができました。簡単な方法もあります。ListTile_menuItemを以下のように書き換えてみましょう。}このように見た目はほとんど同じですが、記述量が減ったのがわかると思います。「ListTile」クラスを使うことによって、一般的によくあるリスト表示の表現を使うことができるので、特に見た目を変更する必要がなければ、「ListTile」を使うことをお勧めします。ListView.builder主に、表示する要素が事前にわからない場合に利用する書き方です。itemBuilderは画面表示時に実行されるため、無限にリストを作成することが可能です。チャットやメッセージ、検索結果の表示などに利用すると良いかと思います。}}上記の例ではitemBuilderでメッセージを表示するウィジェットを作成しています。listの件数が表示件数を上回る場合に追加でメッセージを生成しています。このようにすることで無限にリストが生成される状態になりました。ListView.separated表示する要素が事前にわかっており、一行ごとに何か要素を差し込みたい場合に利用する書き方です。indexはitemBuilder、separatorBuilderともに0から始まります。}}ScrollDirectionscrollDirectionを指定することによって、スクロールの方向を変えることも可能です。デフォルトでAxis.verticalとなっていますが、Axis.horizontalに変えてみましょう。(表示するのが文言だとわかりづらいので、_messageItemを変更しています。}}これで横方向にスクロールするリストになりました。