作者:女孩明天_会更好 | 来源:互联网 | 2022-12-02 20:53
在使用ListView.Builder创建列表时,如何在最后一项中隐藏分隔符?
为每个项添加分隔符相当容易,但是在列表中的最后一项上解除分隔符的逻辑是什么?
没有具体的stackoverflow问题以及实现此任务的具体示例.
Widget build(BuildContext context) {
return
ListView.builder(
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: OffersList.length,
itemBuilder: (context, index) {
Offer item = OffersList[index];
return ListItem(context, item);
},
);
}
Widget ListItem(BuildContext context, Offer item) {
if ( index == OffersList.length - 1) {
dividerChecker = EmptyContainer();
} else {
dividerChecker = Divider();
}
return Column(
children: [
OfferListItem(
offerData: item,
status: status,
userType: userType,
),
dividerChecker,
],
);
}
解决方案如建议:
使用ListView.separator而不是ListView.Builder:
ListView.separated(
separatorBuilder: (BuildContext context, int index) => new Divider(),
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: OffersList.length,
itemBuilder: (context, index) {
Offer item = OffersList[index];
return offerListItem(context, item);
},
),
Widget offerListItem(BuildContext context, Offer item) {
return Column(
children: [
OfferListItem(
offerData: item,
status: status,
userType: userType,
),
],
);
}