【发布时间】:2020-05-23 03:13:00
【问题描述】:
因此,我花了几个小时试图弄清楚如何停止向我的 ListView 添加重复项,但没有任何效果。请帮忙。当我将事件列表映射到地点列表图块时,我的列表视图中不断出现重复的地点。
这是我的代码:
@override
Widget build(BuildContext context) {
return Column(children: <Widget>[
Expanded(
child: ListView(
padding: const EdgeInsets.fromLTRB(16.0, 0.0, 16.0, 8.0),
controller: _scrollController,
shrinkWrap: true,
children: PlaceMapState.events
.map((place) => _PlaceListTile(
place: place,
// onPlaceChanged: (value) => _onPlaceChanged(value),
))
.toSet().toList(),
),
),
],
);
}
}
这是我检索数据并将其放入事件列表的地方:
void initPlace(request,requestId){
var placeId = requestId;
MarkerId placeIdVal = new MarkerId(placeId);
//creating new Place
final Place place = new Place(id: placeIdVal.toString(),
latLng: LatLng(request['latLng'].latitude, request['latLng'].longitude),
name: request['title'],
category: AppState.of(context).selectedCategory,
);
setState((){
events.add(place);
events.toSet();
places[placeIdVal]=place;
print(place);
});
}
【问题讨论】:
-
PlaceMapState.events 可能包含重复记录
-
知道如何防止这种情况发生吗?
-
你在哪里分配这个值?
-
我已经编辑了代码并展示了它
标签: listview flutter dart duplicates mapping