Я пытаюсь показать элемент в Gridview в формате: текст цены -> изображение элемента -> текст заголовка
Я использую столбец для достижения этого, и похоже, что плитка в GridView имеетфиксированная высота, поэтому, когда изображение становится слишком большим, это приведет к переполнению дна.
Итак, мой вопрос: есть ли способ сохранить цену и текст заголовка и только сжать среднее изображение?Что-то похожее на ограничения макета Android / iOS?Спасибо, парни.
[Обновить] Я также вставил фрагмент кода.
Есть еще одна вещь, которую я попробовал, это установить изображение с фиксированной высотой и шириной, и это работает, но это требует от меня тщательного поиска подходящего размера, который не очень гибок для меня.И GridTile также не дает мне макет, который я хочу.Неужели нет никакого способа, которым я могу просто сжать средний вид (в данном случае изображение) с колонкой?
@override
Widget build(BuildContext context) {
final imageUrl = doc['main_image']['downloadURL'];
Widget image;
if (imageUrl != null) {
image = Image.network(
imageUrl,
fit: BoxFit.scaleDown,
);
} else {
image = Container(
color: Colors.grey,
);
}
String price = '\$' + doc[FIREBASE_COL_PRICE].toString();
return Card(
child: Column(
children: <Widget>[
Align(
alignment: Alignment.centerRight,
child: Text(
price,
maxLines: 1,
),
),
Container(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: image,
),
Align(
alignment: Alignment.centerLeft,
child: Text(
doc[FIREBASE_COL_NAME],
maxLines: 1,
))
],
));
}