如果您创建一个新的Flutter项目并包含依赖项,然后替换您的main.dart文件,那么您应该是我在此问题上的位置。
我离开了原来的负载:带有Future.delayed,但这似乎并不重要。我部分地知道我的问题是什么,但无法提出更好的解决方案。
1)我似乎并没有使用我的snapshot.data,而是使用str
制作了一个空列表,然后将allAll添加到其中并使用了它。因此,我不想这样做,我最初使用的是snapshot.data,但是当我尝试“拉动加载更多数据”时遇到了问题,这种情况发生在您滚动到列表底部时。
我当前执行此操作的方法的问题是,如果您拉动加载更多用户,然后在用户加载之前尝试再次拉动,则应用程序会中断并且不会等待数据以正确加载。我相信我需要在该库load:
的{{1}}中进行所有操作,但是我不确定如何重写代码来实现这一目标。
如何使我的数据通过snapshot.data加载,然后在刷新时向该列表追加100个用户,但是UI等待列表更新,然后再完成加载。在str列表更新后,放一个Blocking UI元素会更好吗?当加载新用户时,我会取消阻止用户界面吗?哪种感觉有点黑而不是解决这个问题的正确方法。插件本身应该能够执行加载,并在其准备就绪时将其停在列表下的微调框并显示“完成”。
pubspec.yaml
easy_refresh
main.dart
dependencies:
flutter:
sdk: flutter
flutter_easyrefresh: ^1.2.7
http: ^0.12.0+2
答案 0 :(得分:0)
loadMore: () async {
await getLeaderBoards(str.length).then((onValue) => {
updateLeaderboardList(onValue)
});
},
但是将加载器置于“ await”状态,等待该功能完成,然后再完成动画。
答案 1 :(得分:0)
我看着documentation of loadMore。由于它说分配给loadMore
的函数的主体应为async
,因此您无需使用then
:
loadMore: () async {
final result = await getLeaderBoards(str.length);
updateLeaderboardList(result);
},