Размер изображения Fade In Network Image изменяется после загрузки в

Вот видео с моей проблемой https://www.youtube.com/watch?v=wskX_bZNExw

Если вы заметили, после загрузки сетевого образа он изменяет размер (обычно удаляя пустое пространство).

  Widget _buildPostThumbnail(List<SubmissionPreview> thumbnails) {
    if (thumbnails != null && thumbnails.isNotEmpty) {
      var image = thumbnails.first.resolutions.last;
      return Container(
        width: double.maxFinite,
        child: FadeInImage.memoryNetwork(
          placeholder: kTransparentImage,
          image: image.url.toString(),
        ),
      );
    }
    return Container();
  }

Как я могу заставить изображение занимать МИНИМАЛЬНОЕ пространство с момента его появления на экране, а не после того, как оно успеет изменить размер?

Благодарю.

2 ответа

Решение
Widget _buildPostThumbnail(List<SubmissionPreview> thumbnails) {
    if (thumbnails != null && thumbnails.isNotEmpty) {
      var image = thumbnails.first.resolutions.last;
      return FadeInImage.memoryNetwork(
        fadeInDuration: Duration(milliseconds: 200),
        placeholder: kTransparentImage,
        image: image.url.toString(),
        width: double.maxFinite,
        fit: BoxFit.fitWidth,
        height: (image.height.toDouble() / image.width.toDouble()) * MediaQuery.of(context).size.width,
      );
    }
    return Container();
  }

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

Вы можете установить height окружающих Container к фиксированному значению и работать с fit: BoxFit.fitheight в вашем FadeInImage.

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