flutter - 几页后颤振分页不起作用
问题描述
我正在尝试以 Laravel 作为后端来实现分页功能。我面临的问题是在第 5 页之后,颤动没有向服务器发送请求。有什么理由会失败,因为它可以正常工作到第 5 页。或者是否有任何其他解决方案。总共大约有 90 页,但在几页后就停止了。
使用的插件:https ://pub.dev/packages/flutter_paginator api:https ://apptest.factory2homes.com/api/products?page=$page
body: Paginator.gridView(
key: paginatorGlobalKey,
pageLoadFuture: sendPagesDataRequest,
pageItemsGetter: listItemsGetterPages,
listItemBuilder: listItemBuilder,
loadingWidgetBuilder: loadingWidgetMaker,
errorWidgetBuilder: errorWidgetMaker,
emptyListWidgetBuilder: emptyListWidgetMaker,
totalItemsGetter: totalPagesGetter,
pageErrorChecker: pageErrorChecker,
scrollPhysics: BouncingScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
childAspectRatio: 0.7,),
),
);
}
Future<PagesData> sendPagesDataRequest(int page) async {
print('page ${page}');
try {
String url = Uri.encodeFull("https://apptest.factory2homes.com/api/products?page=$page");
http.Response response = await http.get(url);
print('body ${response.body}');
PagesData pagesData = pagesDataFromJson(response.body);
return pagesData;
} catch (e) {
if (e is IOException) {
/*return CountriesData.withError(
'Please check your internet connection.');*/
} else {
print(e.toString());
/*return CountriesData.withError('Something went wrong.');*/
}
}
}
List<dynamic> listItemsGetterPages(PagesData pagesData) {
List<Datum> list = [];
pagesData.data.forEach((value) {
list.add(value);
});
return list;
}
Widget listItemBuilder(dynamic item, int index) {
return InkWell(
onTap: (){},
child: Card(
child: Column(
children: <Widget>[
Container(
height: 125,
width: double.maxFinite,
child: Image.network(
item.productPhoto,
fit: BoxFit.fill,
)),
],
),
),
);
}
Widget loadingWidgetMaker() {
return Container(
alignment: Alignment.center,
height: 160.0,
child: CircularProgressIndicator(),
);
}
Widget errorWidgetMaker(PagesData countriesData, retryListener) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(16.0),
child: Text("error"),
),
FlatButton(
onPressed: retryListener,
child: Text('Retry'),
)
],
);
}
Widget emptyListWidgetMaker(PagesData countriesData) {
return Center(
child: Text('No Products in the list'),
);
}
int totalPagesGetter(PagesData pagesData) {
return pagesData.lastPage;
}
bool pageErrorChecker(PagesData pagesData) {
//return countriesData.statusCode != 200;
return false;
}
解决方案
推荐阅读
- ios - 如何在文本字段中输入 textFieldDidEndEditing 后的值
- php - SLIM 错误 :: 当 SLIM 应用程序托管在服务器上时找不到 AuthController
- android - 在没有调试模式下,我的平面列表没有完全执行
- html - 如何从公共网站自动“删除评论”
- javascript - 无法从角度调用 firebase 函数:firebase_app__WEBPACK_IMPORTED_MODULE_5__.functions 不是函数
- javascript - 获取多个相同类名jquery的具体数据
- mysql - 如何在 MySQL 存储过程中使用多个游标和多个循环获取数据?
- sql - 使用 VBA 从 Excel 工作表更新 SQL
- elasticsearch - Elasticsearch - 在匹配范围内过滤
- python - 从python 3中具有数十亿条记录的文件中删除重复行的最快方法是什么?