我目前正在开发一个阅读器,并使用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);
},
),
),
);
}
谢谢!