在下面的示例中,使用了shrinkWrap属性,该示例创建了产品卡的水平列表。无论使用还是不使用它,我都没有注意到任何区别。那么,shrinkWrap在这里的实际用途是什么?
ListView.builder(
shrinkWrap: true,
padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
scrollDirection: Axis.horizontal,
itemCount: products.length,
itemBuilder: (context, index) {
return ProductCard(product: products[index]);
},
)发布于 2021-08-08 07:50:00
ListView通常会填满其父级的所有可用空间,而不会关注每一项所需的最小大小。通过使用shrinkWrap并将其设置为true,您可以更改此场景,以便ListView仅占用每个项目通常所需的空间。显然,如果父小部件没有最小高度,即使您将shrinkWrap设置为true,它也会滚动。
发布于 2021-08-08 09:06:10
此构造函数适用于具有大量(或无限)子级的列表视图,因为构建器仅为那些实际可见的子级调用。
如果不设置shrinkWrap属性,则ListView将与其父对象一样大。
如果将其设置为true,则列表将包装其内容,并与其子元素允许的大小一样大。
https://stackoverflow.com/questions/68698758
复制相似问题