Как достичь различной высоты предмета в сетке ленты

Я хочу создать приложение для корзины покупок. Я использовал сетку Sliver с разными предметами разной высоты, но она не работает. Пожалуйста помоги

сетка в флаттер

1 ответ

Это не ответ на вашу конкретную проблему, но он может помочь любому, кто просто хочет изменить размер всех элементов SliverGrid.

У меня была аналогичная проблема, и я пошел просматривать документы здесь . Нет явного способа объявить высоту, но я использовал childAspectRatioсобственность SliverGridDelegate. Коэффициент, равный 1, означает, что элемент ленты сохраняет заданную высоту. Любое отношение выше 1 уменьшает высоту. Чтобы увеличить высоту, я использовал десятичное соотношение.

      childAspectRatio: 0.5,

Вот полный код SliverGrid и его делегата, а также простой рендер элементов-заполнителей:

      SliverGrid(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 2,
          childAspectRatio: 0.5,
        ),
        delegate: SliverChildBuilderDelegate(
              (BuildContext context, int index) {
            return Card(
              child: Text(
                  "Item $index"
              ),
            );
          },
          childCount: 10,
        ),
      )

Обратите внимание, что это изменит высоту всех элементов сетки.

Другие вопросы по тегам