【发布时间】:2021-10-05 02:38:59
【问题描述】:
所以我的 pageLoadController 调用了从我的后端服务获取数据的函数,页面明智。这个控制器是这样在 initState 中定义的
void initState() {
super.initState();
_pageLoadController = PagewiseLoadController(
pageSize: 10,
pageFuture: (pageIndex) {
return getDetails(pageIndex, 10);
});
}
我的 PagewiseListView 小部件在 ListView 内被调用,而 ListView 在 Scaffold 的主体内。
ListView(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Text("Details",
style: TextStyle(
fontFamily: 'FuturaLT',
color: Theme.of(context).primaryColor,
fontSize: SizeConfig.safeBlockHorizontal * 5,
fontWeight: FontWeight.w400,
fontStyle: FontStyle.normal,
)),
PagewiseListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, entry, index) {
return _itemBuider(entry, SizeConfig.safeBlockVertical * 17);
},
pageLoadController: _pageLoadController,
)
其中 _itemBuilder 返回小部件并在 Entry 中显示数据。 现在,我过去使用过 pagewiseListViews,因此预期的行为是,当到达列表末尾时(通过滚动),pageLoad 会自动处理网络调用以获取下一个数据等。
getDetails() 的代码,只是它的通用大纲,请放心,这里的数据正在正确获取
Future<List<Details>> getDetails(
int localListSize, int localListStart) async {
var responseJson = await new NetworkUtils().netWorkcall(localListSize,localListStart);
if (responseJson != null) {
List<Details> list ;
//map data to Details model
return list;
}
return Future.value();
}
在这种情况下,pageController 会继续进行网络调用,即使我根本没有滚动,更不用说到达末尾了。这使得应用程序非常缓慢。有什么我遗漏的,还是图书馆问题?在我以前从事的项目中从未遇到过这个问题。我使用的版本是
flutter_pagewise: ^1.2.3
我也升级到了这个包的最新版本,还是不行。我错过了什么?
【问题讨论】:
标签: android flutter dart pagination flutter-pagewise