Дно колонки флаттера переполнено пикселями - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь показать элемент в Gridview в формате: текст цены -> изображение элемента -> текст заголовка

Я использую столбец для достижения этого, и похоже, что плитка в GridView имеетфиксированная высота, поэтому, когда изображение становится слишком большим, это приведет к переполнению дна.

Итак, мой вопрос: есть ли способ сохранить цену и текст заголовка и только сжать среднее изображение?Что-то похожее на ограничения макета Android / iOS?Спасибо, парни.

[Обновить] Я также вставил фрагмент кода.

Есть еще одна вещь, которую я попробовал, это установить изображение с фиксированной высотой и шириной, и это работает, но это требует от меня тщательного поиска подходящего размера, который не очень гибок для меня.И GridTile также не дает мне макет, который я хочу.Неужели нет никакого способа, которым я могу просто сжать средний вид (в данном случае изображение) с колонкой?

enter image description here

@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,
        ))
    ],
  ));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...