我目前正在开发阅读器,并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);
}, …Run Code Online (Sandbox Code Playgroud)