颤振显示只有不到6长度的列表视图生成器



我有一个简单的listview生成器,我想要的只是显示6个值或小于6。

这是我的代码

Container(
height: MediaQuery.of(context).size.height * 0.35,
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: items['Items'].length,
itemBuilder: (context, index) {
var product = items['Items'][index];
return FadeInAnimation(
index,
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10.0),                      child: ProductCard2(
product: product,
isHorizontalList: false,
)
),
);
},
))

我需要itemCount: items['Items'].length小于6。它的时间是2,长度是10。我需要把它固定为6。所以结果不会大于6。但是如果小于6则会显示

如果我修正6 I itemCount,那么那些小于6的项目在UI中显示错误。

尝试添加单行来夹紧长度

Container(
height: MediaQuery.of(context).size.height * 0.35,
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: items['Items'].length.clamp(0, 6), // this one
itemBuilder: (context, index) {
var product = items['Items'][index];
return FadeInAnimation(
index,
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10.0),                      child: ProductCard2(
product: product,
isHorizontalList: false,
)
),
);
},
))

您可以将长度属性夹在最小值和最大值之间(这里分别为0和6):

itemCount : items['Items'].length.clamp(0,6)

这样,它将最多只显示前6个项目(如果有更少,则显示更少)。

最新更新