如何限制ListView.builder中的项数



我想将我的ListViewitemCount限制为最大值5,并添加文本"以及更多";如果有更多的项目,并且仅在项目为5或更少的情况下显示这些项目。我尝试过使用itemCount: 5,但当项目少于5时,会返回一个错误。我该如何实现?

ListView.builder(
shrinkWrap: true,
itemCount: features.length,
itemBuilder: (context, index) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"•  ${features[index]}",
style: TextStyle(fontWeight: FontWeight.bold),
overflow: TextOverflow.ellipsis,
),
),
],
);
}),
itemCount: features.length < 5 ? features.length : 5,

请尝试此

ListView.builder(
shrinkWrap: true,
itemCount: features.length=>5?5:features.length,
itemBuilder: (context, index) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"•  ${features[index]}",
style: TextStyle(fontWeight: FontWeight.bold),
overflow: TextOverflow.ellipsis,
),
),
],
);
}),

您可以为索引返回空的小部件>5

ListView.builder(
shrinkWrap: true,
itemCount: features.length,
itemBuilder: (context, index) {
return index > 5 ? SizedBox() : Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"•  ${features[index]}",
style: TextStyle(fontWeight: FontWeight.bold),
overflow: TextOverflow.ellipsis,
),
),
],
);
}),

最新更新