flutter gridview infinite обе оси - PullRequest
0 голосов
/ 19 июня 2020

Мое приложение должно отображать большое количество ячеек (> 200), и я могу легко прокручивать по вертикали с помощью приведенного ниже кода, но мне также нужно прокручивать сетку по горизонтали. Ячейки должны иметь фиксированную ширину, а не масштабирование, как это происходит с crossAxisCount. Требуется наличие не менее 30 столбцов фиксированной ширины и не менее 30 строк

return MaterialApp(
  title: 'test',
  home: Scaffold(
    body: CustomScrollView(
      slivers: <Widget>[
        SliverGrid(
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 5,
          ) ,
          delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
            return new Container(
                color: _randomColor(index),
                height: 200.0
            );
          }),
        ),
      ],
    ),
  ),
);

1 Ответ

0 голосов
/ 19 июня 2020

Сетка всегда будет иметь хотя бы одну ось заданной длины, обе оси не могут быть бесконечными.

В качестве решения можно использовать два SingleChildScrollView, один вертикальный и один горизонтальный, и обернуть любой дочерний элемент пример 15 строк x 15 столбцов) с ним:

  SingleChildScrollView(
    scrollDirection: Axis.horizontal,
    child: SingleChildScrollView(
      child: Row(
        children: List.generate(
          15,
          (index) => Column(
              children: List.generate(
                  15,
                  (index) => Container(
                      width: 200,
                      height: 200,
                      color: Color((Random().nextDouble() * 0xFFFFFF).toInt()).withOpacity(1.0)))),
        ),
      ),
    ),
  );
...