флаттер DataTable многострочная упаковка и центрирование - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь иметь несколько центрированных строк в строке DataColumn () объекта DataTable () во флаттере. Кажется, однако, что нет поддержки центрирования или нескольких строк.

Мой код DataTable выглядит примерно так:

class TestDayData extends StatelessWidget {
  final List<String> timesList = [
    "This is",
    "a bunch",
    "of strings",
  ];

  final String day;

  TestDayData({Key key, this.day}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: DataTable(
        showCheckboxColumn: false,
        columns: [
          DataColumn(
            label: Center(child: Text(day)),
            numeric: false,
          ),
        ],
        rows: timesList
            .map(
              (times) => DataRow(cells: [
                DataCell(
                  Text(times.toString()),
                ),
              ]),
            )
            .toList(),
      ),
    );
  }
}

Я сделал файл dartpad здесь, чтобы показать выше код в более широком контексте. (Причина, по которой я помещаю несколько DataTables в виджет Row вместо того, чтобы использовать один DataTable для всех дней, заключается в том, что я планирую поместить каждый из них в виджет Stack, чтобы я мог накладывать встречи поверх столбцов. )

https://dartpad.dev/44bbb788e0d5f1e6393dd38a29430981

До сих пор я мог аппроксимировать многострочную центрированную строку DataColumn, добавляя пробелы и используя символ новой строки, как видно из файла dartpad. , (но должен быть лучший способ!)

1 Ответ

1 голос
/ 12 марта 2020

Вам не хватает textAlign свойства в Text виджете

DataTable(
        showCheckboxColumn: false,
        columns: [
          DataColumn(
            label: Center(child: Text(day, textAlign:TextAlign.center)),
            numeric: false,
          ),
        ],
        rows: timesList
            .map(
              (times) => DataRow(cells: [
                DataCell(
                  Text(times.toString(), textAlign: TextAlign.center),
                ),
              ]),
            )
            .toList(),
      ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...