どうも、ちょげ(@chogetarou)です。
2つのListView.builderを2カラムで表示する方法を紹介します。
方法

2つのListView.builderを2カラムで表示する方法は、2つあります。
GridView
1つは、GridViewを使う方法です。
まず、2つのListViewをGridView.countの「children」に指定します。
そして、GridView.countの引数「crossAxisCount」に「2」を指定します。
GridView.count(
crossAxisCount: 2,
children: [
ListView.builder(
・・・
),
ListView.builder(
・・・
),
],
),
以下は使用例です。
GridView.count(
crossAxisCount: 2,
children: [
ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('$index'),
);
},
),
ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('$index'),
);
},
),
],
childAspectRatio: 0.5,
),

Row + SizedBox

もう1つは、RowウェジェットとSizedBoxを使う方法です。
まず、Rowウェジェットの引数「children」にListView.builderを2つ指定します。
そして、2つのListViewをSizedBoxでラップし、SizedBoxの「width」に横幅を指定します。
以下は、例です。
Row(
children: [
SizedBox(
width: MediaQuery.of(context).size.width / 2.1,
child: ListView.builder(
shrinkWrap: true,
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('$index'),
);
},
),
),
VerticalDivider(),
SizedBox(
width: MediaQuery.of(context).size.width / 2.1,
child: ListView.builder(
shrinkWrap: true,
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(
title: Text('$index'),
);
},
),
),
],
),

まとめ
L2つのListView.builderを2カラムで表示する方法は、次の2つです。
- GridView
- Row + SizedBox
コメント