【发布时间】:2018-06-03 03:41:43
【问题描述】:
我目前正在开发一个阅读器并使用PageView 来滑动图像页面。如何使下一页预加载,以便用户可以滑动到下一页而无需等待页面加载?我不想先下载所有页面,因为它会加载服务器并冻结我的应用程序。当用户浏览当前页面时,我只想下载接下来的一两个页面。
这是我的代码的摘录。
PageController _controller;
ZoomableImage nextPage;
Widget _loadImage(int index) {
ImageProvider image = new CachedNetworkImageProvider("https://example.com/${bookId}/${index+1}.jpg}");
ZoomableImage zoomed = new ZoomableImage(
image,
placeholder: new Center(
child: CupertinoActivityIndicator(),
),
);
return zoomed;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Container(
child: PageView.builder(
physics: new AlwaysScrollableScrollPhysics(),
controller: _controller,
itemCount: book.numPages,
itemBuilder: (BuildContext context, int index) {
return index == 0 || index == 1 ? _loadImage(index) : nextPage;
},
onPageChanged: (int index) {
nextPage = _loadImage(index+1);
},
),
),
);
}
谢谢!
【问题讨论】: