21

我想FadeInImage用一个图标作为占位符。

FadeInImage构造函数很少。

在默认构造函数中,它ImageProvider作为占位符,在FadeInImage.MemoryNetwork(它中Uint8List作为内存占位符。

第三个构造函数创建 AssetImage,但我怀疑这在这里​​有用。

有什么方法可以将 Icon 转换为其中一种数据类型?

示例签名:

FadeInImage(placeholder: iconPlaceholder, image: NetworkImage("url"))

4

2 回答 2

12

图标实际上只是字体中的文本,因此将其制作成图像很棘手。食谱中的技巧应该有效。使用带有图标的堆栈和透明的占位符。

body: Stack(
  children: <Widget>[
    Center(child: Icon(Icons.something)),
    Center(
      child: FadeInImage.memoryNetwork(
        placeholder: kTransparentImage,
        image:
            'https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true',
      ),
    ),
  ],
),

对于kTransparentImage见此。

于 2018-06-06T15:26:53.027 回答
3

还有一个包可以把Widget作为占位符

https://pub.dartlang.org/packages/cached_network_image

  ClipOval(
    child: CachedNetworkImage(
  placeholder: new Container(
    height: height,
    width: height,
    child: Icon(Icons.accessibility),
    color: kGrey400,
  ),
  imageUrl: photoUrl,
  height: height,
  fit: BoxFit.cover,
));
于 2018-06-06T16:23:12.790 回答