图片资源服务在setpose()之后调用setState()捕获了异常:_ImageState

时间:2020-06-20 04:58:20

标签: flutter dart flutter-layout flutter-widget

enter image description here

如果在图像仍在加载时切换页面,则会发生此错误。如果我返回页面,它也不会触发重新加载。 我不明白,是不是要使用loadingBuilder,frameBuilder和errorBuilder来避免这种情况?这样处理/重新加载是否应该自动处理? 我是否以正确的方式使用Image.network?或者我的方法本身是错误的?

我还尝试在Image.network状态下将Image _image分配给init,然后尝试在dispose方法中关闭/处置/卸载,但是这些方法都不是可用。

Image.network(
      widget.url,
      fit: BoxFit.contain,
      frameBuilder: (
          BuildContext context,
          Widget image,
          int frame,
          bool wasSynchronouslyLoaded,
          ) {
        return AnimatedOpacity(
          child: image,
          opacity: frame == null ? 0 : 1,
          duration: const Duration(seconds: 1),
          curve: Curves.easeIn,
        );
      },
      loadingBuilder: (
          BuildContext context,
          Widget image,
          ImageChunkEvent loadingProgress,
          ) {
        if (loadingProgress == null) return image;
        if (loadingProgress != null &&
            loadingProgress.cumulativeBytesLoaded <
                loadingProgress.expectedTotalBytes) {
          return Center(
            child: CircularProgressIndicator(),
          );
        } else if (loadingProgress.cumulativeBytesLoaded ==
            loadingProgress.expectedTotalBytes) {
          return image;
        }
        return image;
      },
      errorBuilder:
          (BuildContext context, Object exception, StackTrace stackTrace) {
        return Center(
          child: Text(
            '${exception.toString()}',
            textAlign: TextAlign.center,
            style: TextStyle(
              fontSize: 15,
            ),
          ),
        );
      },
    )

0 个答案:

没有答案