首页 > 解决方案 > 如何在控制图像宽度的同时让图像扩展并在 Flutter 中为其赋予边框半径

问题描述

我在 Flutter 工作,在那里ListView我展示了很多图像,我需要这些图像具有相同的宽度,但它们可以根据它们的原始高度扩展,即我想要对图像的宽度进行限制,但不是高度。它应该如下图所示:

在此处输入图像描述

而我现在编写的代码强制每个图像具有相同的高度。这是代码:

                               Container(
                                  width: MediaQuery.of(context).size.width * .9,
                                  height: MediaQuery.of(context).size.height * .6,
                                  decoration: BoxDecoration(
                                      borderRadius: BorderRadius.circular(35),
                                      image: DecorationImage(
                                          image: NetworkImage(memes[index].link),
                                        fit: BoxFit.fill
                                      )
                                  ),
                                ),

非常感谢!

标签: imageflutterwidget

解决方案


如果没有height小部件不会出现,我建议计算图像高度宽度,然后根据图像数据中的高度构建小部件将解决您的问题。您可以使用此功能获取图像大小

  Future<Size> _calculateImageDimension(link) {
    Completer<Size> completer = Completer();
    Image image = Image.network(link);
    image.image.resolve(ImageConfiguration()).addListener(
      ImageStreamListener(
            (ImageInfo image, bool synchronousCall) {
          var myImage = image.image;
          Size size = Size(myImage.width.toDouble(), myImage.height.toDouble());
          completer.complete(size);
        },
      ),
    );
    return completer.future;
  }

我希望这能解决你的问题。


推荐阅读