Как реализовать таблицу с фиксированными заголовками во Flutter? - PullRequest
2 голосов
/ 26 сентября 2019

Как реализовать таблицу с фиксированными вертикальными и горизонтальными заголовками во флаттере?Например, горизонтальный заголовок должен прокручиваться только горизонтально, а вертикальный заголовок - вертикально.Оба заголовка всегда должны быть видны.Как настроить макет?

Пример

Я уже пытался использовать строку с двумя вложенными столбцами для настройки общего макета 2x2: (0,0) пусто;(0, 1) вертикальный заголовок;(1,0) горизонтальный заголовок и (1, 1) данные.Для визуализации реальных данных я использовал GridView для двух заголовков и данных.Более того, я хочу использовать контроллер прокрутки для достижения режима прокрутки.

  1. Строка
    1. Столбец: (0) пуст, (1) GridView
    2. Столбец:(0) GridView (1) GridView

Еще одно решение, о котором я подумал, - использовать вложенные GridView вместо строки и двух столбцов.

Этот кодпоказывает первый столбец:

Widget build(BuildContext context) {
    return Container(
      width: double.maxFinite,
      child: Row(
        children: <Widget>[
            Column(
              children: <Widget>[
                Text("empty"), // (0,0)
                Container( // (0, 1)
                  child: Flexible(
                    child: GridView.count(
                      controller: _vScrollController1,
                      crossAxisCount: 1,
                      childAspectRatio: 3.0,
                      children: List.generate(
                        widget.data.length,
                        (index) => Text("my cell")
                      ),
                    ),
                  ),
                ),
              ],
            ),
        ],
      ),
    );

Однако выдается следующее сообщение об ошибке:

════════Вызван ноль.
Получатель: ноль.Пробный звонок:> (1e-10).Созданным пользователем предком вызывающего ошибки виджета был Контейнер.═════════════════════════════════.

Возможно, некоторые свойства ширины / высоты установлены неправильно?Как бы вы достигли этой таблицы?Спасибо за вашу помощь!

...