我注意到图像资源加载太慢而无法使用的问题。
在这个简单的示例(如下)中,当加载图像时,您可以看到一个初始屏幕,然后图像资源加载并出现在屏幕上。
我原本希望一眼就能看到所有内容,而不是看到正在加载的资产
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
Positioned.fill(child: Image.asset(imagePaths[6], fit: BoxFit.cover)),
]
)
);
}
有什么办法可以使这些图像更快地加载吗? 即使在发行版中也建立了它加载资产的速度,用户仍然可以看到它
答案 0 :(得分:0)
从资产加载图像的速度对我来说似乎不错。它可能与您要显示的图像的大小和数量有关。您能否提供minimal repro来说明问题?我想了解一下您加载图像的方法的基准速度,并查看是否有改进的方法。
如上所述,您也可以尝试在显示屏幕之前使用precacheImage
来预加载图像资产。一个简单的实现应如下所示:
AssetImage assetImage;
@override
void initState() {
super.initState();
assetImage = AssetImage('assets/yourimage.png');
precacheImage(assetImage, context);
}
@override
Widget build(BuildContext context) {
// build your screen here
Image(image: assetImage);
// build your screen here
}