android - 加载 flutter 时去除图像中的白色闪烁

标签 android flutter dart flutter-layout flutter-gridview

我正在构建一个在 GridView 中显示数百张图像的应用程序。在网格图 block 中,我展示了低质量的图像。当我们按下图像时,我会显示完整质量的图像,同时,我会显示低质量图像作为占位符。我正在使用 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 个淡入淡出持续时间默认值为非 null(顺便说一下,placeholderFadeInDuration 为 null),您可以尝试将 fadeOutDurationfadeInDuration 归零:

enter image description here

关于android - 加载 flutter 时去除图像中的白色闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69930018/

相关文章:

android - 返回 Activity 后 ListView 不会更新

android - 设置应用程序 :layout_constraintTop_toBottomOf on ConstraintLayout

flutter - Flutter:在null上调用了getter(JSON API调用)

dart - Polymer dart元素可在Ubuntu上运行,但不能在Android设备上的chrome应用程序中使用

Android OS 导航和状态栏在全屏 PWA 上切换进出

intellij-idea - 如何签署 Flutter 的应用程序

dart - 如何更改 Flutter 中自定义绘画的来源?

android - Flutter ListView 不滚动到最后添加的项目,而是滚动到最后一个之前的项目

dart - 如何在 Flutter 应用程序中使用数字色度计的 rgb 颜色?

安卓。深层链接不适用于 http/https 方案