[Flutter]DataTableのDataRowの背景色を設定するには?

Flutter

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

DataTableのDataRowの背景色を設定する方法を紹介します。

スポンサーリンク

方法

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

1部

1部のDataRowの背景色だけを変えるには、引数「color」を使います。

まず、DataRowの引数「color」にMaterialStateProperty.resolveWithを指定します。

そして、resolveWithの戻り値として、DataRowの背景色を指定します。

DataRow(
  color: MaterialStateProperty.resolveWith((states) {
      return /*色*/;
  }),
  cells: [
    ・・・
  ],
),

以下は、例です。

DataRow(
  color: MaterialStateProperty.resolveWith((states) {
      return Colors.yellow;
  }),
  cells: [
      DataCell(
          Text('5'),
       ),
       DataCell(
           Text('Product 5'),
       ),
       DataCell(
           Text('35円'),
       ),      
  ],
),

全体

全てのDataRowの背景色を設定するには、DataTableの引数「dataRowColor」を使います。

まず、DataTableの引数「dataRowColor」にMaterialStateProperty.resolveWithを指定します。

そして、resolveWithの戻り値として、全てのDataRowの背景色を指定します。

DataTable(
  dataRowColor: MaterialStateProperty.resolveWith((states) {
    return /*背景色*/;
  }),
  columns: [・・・],
  rows: [・・・],
),

以下は、使用例です。

DataTable(
  dataRowColor: MaterialStateProperty.resolveWith((states) {
    return Colors.blue[100];
  }),
  columns: [
    DataColumn(
      label: Text('id'),
    ),
    DataColumn(
      label: Text('名前'),
    ),
    DataColumn(
      label: Text('値段'),
    ),
  ],
  rows: _list
      .map(
        (e) => DataRow(
          cells: [
            DataCell(
              Text('${e['id']}'),
            ),
            DataCell(
              Text('${e['name']}'),
            ),
            DataCell(
              Text('${e['price']}円'),
            ),
          ],
        ),
      )
      .toList(),
),

まとめ

DataTableのDataRowの背景色を設定する方法は、次の2つです。

  • DataRowの引数「color」を使い1部の背景色を変える方法
  • DataTableの引数「dataRowColor」を使い全体の背景色を変える方法

コメント

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