加载颤动时去除图像中的白色闪烁

Remove White Flicker in Image when loading flutter

我正在构建一个在网格视图中显示数百张图像的应用程序。在网格图块中,我展示了低质量的图像。当我们按下图像时,我会显示完整质量的图像,同时,我会显示低质量图像作为占位符。我正在使用 CachedNetworkImage 包。这里的问题是当加载全质量图像时会出现一些白色闪烁,如 here 所示。我想删除那个 flickr。有什么方法可以删除那个吗?

这是我的代码。

 Widget cachedImage(imageUrl) {
    return CachedNetworkImage(
      imageUrl: imageUrl,
      imageBuilder: (context, imageProvider) => Container(
            decoration: BoxDecoration(
              color: Theme.of(context).shadowColor,
                borderRadius: BorderRadius.circular(10),
                boxShadow: <BoxShadow>[
                  BoxShadow(
                      color: Theme.of(context).shadowColor,
                      blurRadius: 2,
                      offset: Offset(2, 2))
                ],
                image: DecorationImage(
                    image: imageProvider,
                    fit: BoxFit.cover)),
          ),
      placeholder: (context, url) => LoadingWidget1(),
      errorWidget: (context, url, error) => Center(child: Icon(Icons.error)),
    );
  }

//code for thumbnail image
Hero(
    tag: 'category$index',
    child: cachedImage(d['thumbnail url'])
),

//Code for FullQuality Preview

....
child: CachedNetworkImage(
                placeholderFadeInDuration: Duration(microseconds: 0),
                useOldImageOnUrlChange: true,
                imageUrl: imageUrl,
                imageBuilder: (context, imageProvider) => Container(
                  decoration: BoxDecoration(
                      image: DecorationImage(
                          image: imageProvider, fit: BoxFit.cover)),
                ),

                placeholder: (context, url) => Stack(
                  children: [

                    CachedNetworkImage(
                      imageUrl: thumbUrl,
                      imageBuilder: (context, imageProvider) => Container(
                      decoration: BoxDecoration(
                          image: DecorationImage(
                              image: imageProvider, fit: BoxFit.cover)),

                    ),

                  ),

CachedNetworkImage 中有 2 个淡入淡出持续时间,默认值为非空值(顺便说一下,placeholderFadeInDuration 为空值),您可以尝试将 fadeOutDuration 和 [=12] 归零=]: