首页 > 解决方案 > 抽屉中的图像未立即加载

问题描述

我有一个图像保存在我的颤振项目的专用目录中。整个目录作为资产包含在 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,没有电脑)。

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

标签: imageflutter

解决方案


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

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

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


推荐阅读