有什么方法可以控制Image.network()启动的异常,以便为它提供默认的AssetImage吗?
这取决于您的用例,但是一种实现方法是使用FadeInImage,该属性具有的属性img要用于要加载的图像placeholder,以及占位符
FadeInImage
img
placeholder
FadeInImage(image: NetworkImage(url), placeholder: AssetImage(assetName)
您也可以收听直到图像加载完毕,然后自己显示一个占位符,直到解析出图像为止。
伪码
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, ); }