[Flutter]2つのListView.builderを2カラムで表示するには?

Flutter

どうも、ちょげ(@chogetarou)です。

2つのListView.builderを2カラムで表示する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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

コメント

タイトルとURLをコピーしました