这取决于您的用例,但一种方法是使用FadeInImage
,它的属性为img
,用于要加载的图像,以及placeholder
,用于占位符
FadeInImage(image: NetworkImage(url), placeholder: AssetImage(assetName)
您还可以监听,直到加载图像,并自己显示占位符,直到读取图像解析为止.
pseudo code个
bool _loaded = false;
var img = Image.network(src);
var placeholder = AssetImage(assetName)
@override
void initState() {
super.initState();
img.image.resolve(ImageConfiguration()).addListener((i, b) {
if (mounted) {
setState(() => _loaded = true);
}
});
}
@override
Widget build(BuildContext context) {
return YourWidget(
child: _loaded ? img : placeholder,
);
}