我想用带有图标的FadeInImage作为占位符.

FadeInImage几乎没有构造器.

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

第三个构造函数创建AssetImage,但我怀疑它在这里是否有用.

有没有办法将图标转换为这些数据类型之一?

签名示例:

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

推荐答案

图标实际上只是字体中的文本,所以很难将其制作成图像.百分百的诀窍应该管用.使用带有图标和透明占位符的堆栈.

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,请参见this.

Flutter相关问答推荐

在Flutter中,CachedNetworks Image不工作(不从CachedData加载)

壁炉有序在Flutter

功能不起作用的Flutter 块复制

在创建肘部并使用冻结时,无法使用中的Copy With方法

Flutter -如何停止块监听程序在后台堆栈中运行

Flutter 对齐:不适用于多行文字

Riverpod状态管理-在调用请求时更新用户界面

video_player在Android上返回401 Unauthorized with Bunny CDN

Flutter AppBar Animation反向调试

有没有一种正确的方法可以通过上下滑动在两个小部件(在我的情况下是应用程序栏)之间切换?

如何让两个展开的Widget根据其子窗口的屏幕大小

如何使listview.builder在筛选列表后实时更新

带有命名参数的回调函数不起作用

Flutter应用无法上传到Microsoft Store

从所有设备注销,因为用户帐户已从 firebase flutter 中删除

有没有办法在没有收缩包装的情况下在列中使用 ListView.Builder?

java.lang.IncompatibleClassChangeError:找到接口 com.google.android.gms.location.SettingsClient,

Flutter 中的无效日期格式 2022 年 11 月 14 日

我想在数组中添加项目

Flutter Web App 未启动:脚本的 MIME 类型不受支持