Как достичь различной высоты предмета в сетке ленты
Я хочу создать приложение для корзины покупок. Я использовал сетку 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,
),
)
Обратите внимание, что это изменит высоту всех элементов сетки.