Flutter: Как сделать высоту строки GridView, чтобы обернуть содержимое? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь создать сетку с двумя столбцами, где каждый элемент может иметь разную высоту, как показано на рисунке. Можно ли установить высоту строки, равную максимальной высоте элемента в этой строке, другими словами, возможно ли сделать обтекание строки своим содержимым независимо от высоты элементов?

enter image description here

1 Ответ

0 голосов
/ 27 марта 2020

Вы не можете GridView обернуть содержимое , потому что все элементы масштабируются до высоты самого большого элемента. Вы можете изменить childAspectRatio (на более мелких предметах будет пустое пространство) или указать пользователя StaggeredGridview Отсюда

Разнесенное представление сетки с флаттером, которое поддерживает несколько столбцов со строками различных размеров.

Это действительно просто использовать

StaggeredGridView.countBuilder(
  crossAxisCount: 4,
  itemCount: 8,
  itemBuilder: (BuildContext context, int index) => new Container(
      color: Colors.green,
      child: new Center(
        child: new CircleAvatar(
          backgroundColor: Colors.white,
          child: new Text('$index'),
        ),
      )),
  staggeredTileBuilder: (int index) =>
      new StaggeredTile.count(2, index.isEven ? 2 : 1),
  mainAxisSpacing: 4.0,
  crossAxisSpacing: 4.0,
)

Вы можете найти больше примеров в Пример проекта .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...