[Flutter]DataTableを横スクロールするには?

Flutter

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

DataTableを横スクロールする方法を紹介します。

スポンサーリンク

方法

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

DataTableを横スクロールするには、SingleChildScrollViewを使います。

まず、DataTableをSingleChildScrollViewでラップします。

そして、SingleChildScrollViewの引数「scrollDirection」に「Axis.horizontal」を指定します。

SingleChildScrollView(
  scrollDirection: Axis.horizontal,
  child: DataTable(
    columns: columns,
    rows: rows,
  )
),

引数「scrollDirection」に「Axis.horizontal」を指定したSingleChildScrollViewでラップすることにより、DataTableが横スクロールできるようになります。

使用例

class Sample extends StatelessWidget {
  List<Map> _list = List.generate(
    15,
    (index) => {
      'id': index,
      'name': 'Productttttttttttttttttttttttttttttttttttttttt $index',
      'price': Random().nextInt(300) + 1,
    },
  );
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SingleChildScrollView(
          scrollDirection: Axis.horizontal,
          child: DataTable(
            columns: [
              DataColumn(
                label: Text('id'),
              ),
              DataColumn(
                label: Container(
                  width: 190,
                  child: Text('名前'),
                ),
              ),
              DataColumn(
                label: Text('値段'),
              ),
            ],
            rows: _list
                .map(
                  (e) => DataRow(
                    cells: [
                      DataCell(
                        Text('${e['id']}'),
                      ),
                      DataCell(
                        Text('${e['name']}'),
                      ),
                      DataCell(
                        Text('${e['price']}円'),
                      ),
                    ],
                  ),
                )
                .toList(),
          ),
        ),
      ),
    );
  }
}

コメント

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