【问题标题】:Image in a Drawer not loaded immediately抽屉中的图像未立即加载
【发布时间】:2020-07-31 16:49:02
【问题描述】:

我在 Flutter 项目的专用目录中保存了一张图片。整个目录作为资产包含在 pubspec.yaml 中,显示的代码如下:

        Drawer(
          child: ListView(
            children: <Widget>[
              Image(image: AssetImage('immagini/liberty_square.jpg')),
              SizedBox(height: 4),
              ListTile(
                // contents
              ),
             // etc...
            ],
          ),
        );

Drawer 位于 StatefulWidget 中。图像重约 2MB。这是一张城镇广场的照片。我没有使用 DrawerHeader 来避免填充和边距。

在android模拟器(android studio)中,当我打开抽屉时,图像会立即加载,而在我的两个真实设备中我有问题。

在应用启动时,我打开抽屉,但看不到图像。有时我必须等待几秒钟才能看到图像,但有时我必须关闭并重新打开抽屉多次才能看到图像。

这在测试模式(android studio)和生产模式(安装并打开 apk,无需电脑)中都会发生。

我想预加载,但是图片是资产,不是从网络下载的。

【问题讨论】:

标签: image flutter


【解决方案1】:

在构建抽屉之前尝试使用precached image 加载图像。 转到包含您的抽屉的小部件并将其添加到您的initState

precacheImage(new AssetImage('immagini/liberty_square.jpg'));

然后像现在一样调用你的图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多