【问题标题】:Flutter FadeInImage Network - Will not fade in image on setState image changeFlutter FadeInImage Network - 在 setState 图像更改时不会淡入图像
【发布时间】:2019-09-16 19:15:53
【问题描述】:

我有一个使用 FadeInImage.assetNetwork 加载图像的小部件,第一次加载应用程序时,图像的图像淡入工作正常,当我尝试更新图像 URL 状态时,FadeInImage 选项不起作用。

Below 小部件用于加载图像,其中 qIcon 在 setState 上动态设置。

  Widget quizIconCard(qIcon) {
    return Card(
      margin: EdgeInsets.all(5.0),
      child: Container(
        padding: EdgeInsets.all(10.0),
        child: Column(
          children: <Widget>[
            FadeInImage.assetNetwork(
              height: 128,
              width: 128,
              placeholder: 'assets/login_logo.png',
              image: qIcon,
              imageScale: 1.2,
            )
          ],
        ),
      ),
    );
  }

qIcon 的 setState 更新了图像 URL,但我们看不到 fadeIn 效果和占位符图像。

有什么解决办法吗?

【问题讨论】:

  • 这是FadeInImage 的设计行为。 “当占位符或图像发生变化时,此小部件会继续显示先前加载的图像(如果有),直到新的图像提供程序提供不同的图像。”您可能需要做一些事情来替换整个小部件。
  • 是的,这行得通 - 尝试重新加载小部件,您可以将其发布为答案吗?
  • 我将其作为评论发布,因为我觉得这不是一个完整的答案,因为我无法提供代码示例,但我已经继续并将其移至答案因为它帮助了你。

标签: dart flutter


【解决方案1】:

FadeInImage 的描述表明淡入淡出仅在初始图像加载后发生一次,任何后续更改只会导致图像被替换。

当占位符或图像发生变化时,此小部件会继续 显示先前加载的图像(如果有),直到新图像 提供者提供了不同的图像。

这意味着您可能需要以生成新小部件的方式来实现图像更改,而不仅仅是更改 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多