image - 抽屉中的图像未立即加载
问题描述
我有一个图像保存在我的颤振项目的专用目录中。整个目录作为资产包含在 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,没有电脑)。
我曾想过预加载,但图像是资产,不是从网络下载的。
解决方案
尝试在构建抽屉之前使用预缓存图像加载图像。转到包含您的抽屉的小部件并将其添加到您的initState
:
precacheImage(new AssetImage('immagini/liberty_square.jpg'));
然后像现在一样调用你的图像。
推荐阅读
- spring - Spring Security 中@PreAuthorize 和@PostAuthorize 有什么区别
- python-3.6 - Python 3.6 JSON 字符串到对象的转换
- c# - 如何用列表填充选择器
- string - '格式字符串只能是“G”、“g”、“X”、“x”、“F”、“f”、“D”或“d”。
- python - 如何使用带有 Python 可执行文件的 Mac finder 导入图像
- delphi - Delphi,克隆一个包含孩子的 3DObject
- scala - 重载方法值 Sin 有替代方案
- excel - 将数据从活动单元格复制到另一个工作簿
- javascript - 选择项目时过滤器下拉菜单不起作用
- javascript - webpack - 在不捆绑的情况下编译 1 个 ts 文件(2 个条目)