我正在尝试使用
ListView
构建器从 api 加载一堆名称。
我的 api
有一个名为 index 的参数,每次用户到达列表末尾时,该参数都需要增加 50
所以我在我的 ScrollController
上附加了一个 ListView
。
开始时index的值为0。
我首先在
api
中呼叫
initState
Follwoing 是当用户到达列表末尾时我的代码
scrollController.addListener(() {
if (scrollController.position.pixels ==
scrollController.position.maxScrollExtent) {
index += 50;
//Calling the api again here
}
});
现在使用这种方式列表可以正常加载。假设用户加载了所有数据并假设索引为250,现在用户决定 将应用程序放在后台,一段时间后再次打开应用程序,最后 50 个项目会再次添加到我的列表中,我不明白为什么。
我正在使用
StreamBuilder
和 bloc
图案
if (snapshot.data != null) {
studentList.addAll(snapshot.data.studentList);
}
我厌倦了不同的运算符,但它不适用于我的情况
Observable<StudentListModel> get studentList => _studentList.stream.distinct();
我猜这是你的问题。
if (snapshot.data != null) {
studentList.addAll(snapshot.data.studentList);
}
您将在前 50 名检索到的学生之上添加 100 名学生,其中 50 名是重复的。 您可以将代码更改为:
if (snapshot.data != null) {
studentList = snapshot.data.studentList;
}