0

代码工作正常,但由于我的互联网连接不可靠,我遇到了 NetworkImage.load 的问题(见下面的错误图片)

Container(
 width: 60,
 height: 80,
 decoration: BoxDecoration(
  color: Colors.black12,
  borderRadius: BorderRadius.all(Radius.circular(7.0))
  image: DecorationImage(
   image: NetworkImage(trend['imageUrl']),
   onError: <how we can handle this?>,
   fit: BoxFit.cover
  ),
 ),
);

我希望可以通过 onError 方法处理这个问题来解决这个问题(如果我错了,请纠正我)。但我不知道该怎么做。

错误: 我在 Android Studio 上遇到的错误

提前致谢

4

1 回答 1

2

首先,假设您NetworkImage在班级内部进行了初始化。像:

var imgVariable = NetworkImage(trend['imageUrl']);

然后,加载您的网络映像。如果发生错误,那么我们将从我们的资产中加载,让用户知道我们无法加载网络图像。

Container(
 width: 60,
 height: 80,
 decoration: BoxDecoration(
  color: Colors.black12,
  borderRadius: BorderRadius.all(Radius.circular(7.0))
  image: DecorationImage(
   image: imgVariable,
   onError: (errDetails){
       setState(){
           imgVariable = AssetImage('assets/could_not_load_img.jpg');
       };
   },
   fit: BoxFit.cover
  ),
 ),
);

在这里,assets/could_not_load_img.jpg是信息丰富的图像。

*注意:这似乎不适用于错误,但这可能是我想出的一种方法。有像cached_network_image这样的插件可以很好地处理网络图像。

于 2020-08-07T10:33:34.353 回答