Flutter 中的网格视图图像视图差异问题?

Grid view image View difference Problem in Flutter?

我在 gridview 上显示图像,但遇到问题。我想让图片的高度和宽度相等。

这是图片,我想让右边的图片和左边的一样宽和高one.Or至少给缺失的部分加个白色的封面。

这是我的代码:

child: Consumer<Images>(
                        builder: (ctx, titles, ch) => GridView.builder(
                            physics: ScrollPhysics(),
                            itemCount: titles.items.length,
                            gridDelegate:
                                SliverGridDelegateWithFixedCrossAxisCount(
                              crossAxisCount: getSize(_currentSliderValue),
                              mainAxisSpacing: 50,
                              childAspectRatio: 115/162.05,
                              crossAxisSpacing: 5,
                            ),
                            itemBuilder: (ctx, index) {

                              saveallimages(titles.items);


                              return GestureDetector(
                                onTap: () => add(titles.items[index].image),
                                //()=>add(titles.items[index].image),
                                child: selected.contains(titles
                                    .items[index].image.path
                                    .toString()) ?

                                Container(child: selectedimage(titles.items[index].image)) :

                                  Container(child:  nonselected(titles.items[index].image))


                              );

这是我的小部件功能:

Widget selectedimage(image) {
    return Stack(children: <Widget>[
      Image.file(image, fit: BoxFit.cover),
      Positioned(
        right: 12,
        bottom: 10,
        child: Image.asset("assets/images/selected.png", width: 26, height: 26),
      )
    ]);
  }

  Widget nonselected(image) {
    return Stack(children: <Widget>[
      Image.file(image, fit: BoxFit.cover),
    ]);
  }

selectedimage 功能是选中图片时打勾

而不是使用 Image.fileImage.asset 作为 child 你可以尝试使用AssetImageFileImage 内部容器装饰如:

Container(
  decoration: BoxDecoration(
    image: DecorationImage(
      image: FileImage(image),
      fit: BoxFit.cover,
    ),
  )
)