我多次从Firestore获取不同的imageURLs并将它们显示在屏幕上,但是加载起来感觉有点慢。所以我想预加载图像,有办法吗?
具体来说,在下面的代码中,当counter == 0时,我想在counter == 1、2时读取imageURL。(Flutter随后将缓存图像,因此当计数器达到1或2时,图像将加载速度更快。)
我也尝试了CachedImageNetwork,但不知道如何适应这种情况
class TestScreen extends StatefulWidget {
@override
_TestScreenState createState() => _TestScreenState();
}
class _TestScreenState extends State<TestScreen> {
int counter=0;
List imageURLList=['url1','url2','url3'];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.network(imageURLList[counter]),
RaisedButton(
onPressed: (){
setState(() {
counter++;
});
},
child: Text('push'),
),
],
),
),
);
}
}
答案 0 :(得分:0)
如果我的理解正确,即使您的网络映像没有显示,您也要加载它们。
测试后编辑:我不是使用URL列表,而是使用包含NetworkImage对象并使用方法for (auto i = a.begin(); i != a.end();) {
auto current = i++;
if (p(*current)) {
// moving is probably unnecessary
b.insert(a.extract(std::move(current)));
}
}
的列表。
precacheImage