我已经创建了一个列表视图与图像在Flutter。它的工作,但图像是错误的大小。它看起来像这样:
但我想要的是:
这是我正在使用的代码:
SizedBox(
height: 300,
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext ctx, int index) {
return SizedBox(
width: MediaQuery.of(context).size.width * 0.5,
child: Card(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Image.file(
File(_imageFileListM[index].path),
fit: BoxFit.fitWidth,
),
),
margin: const EdgeInsets.all(10),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
));
},
itemCount: _imageFileListM.length,
))
我做错了什么?
4条答案
按热度按时间scyqe7ek1#
试试这个:
htrmnn0y2#
使用容器小部件类似于以下框装饰属性可能会对您有所帮助
容器(高度:200.h,宽度:双倍。无限,装饰:框装饰(图片:装饰图像(图像:AssetImage(“输入您的路径”)),颜色:基础颜色2,边界半径:仅限边界半径(左下角:圆形半径(20.r),右下角:圆形半径(20.r)),
),
fnx2tebb3#
只需使用
FittedBox
Package 列表元素,如下所示:q3qa4bjr4#
实现此目的的简单方法是使用Stack和position。
Stack允许小部件彼此重叠。Positioned允许您在堆栈中的特定位置呈现其子部件。
堆栈非常类似于一个列,但是小部件是在彼此的顶部呈现的,因此您需要指定它们应该如何呈现。
这将是您的主要图像小部件:
1.图像被包裹在一个扩展大小的框中以覆盖整个空间。
这是最下面的部分。你可以用任何你喜欢的东西来代替它。
您也有一个网格视图,使用gridDelegate很容易
完整的代码示例。
最终结果: