图片资源加载太慢

Pag*_*ate 5 flutter

我注意到一个问题,图像资源加载速度太慢而无法使用。

在这个简单的例子中(下面),当图像被加载时,你可以看到一个初始屏幕,然后图像资源加载并出现在屏幕上。

我希望一口气看到所有内容,而不是看到正在加载的资产

  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          Positioned.fill(child: Image.asset(imagePaths[6], fit: BoxFit.cover)),
        ]
    )
    );
  }
Run Code Online (Sandbox Code Playgroud)

知道我可以做些什么来使这些图像加载速度更快吗?即使在发布版本中,它的加载资产也很慢,用户可以看到它

Oma*_*att 1

从资产加载图像的速度对我来说似乎很好。它可能与您尝试显示的图像的大小和数量有关。你能提供一个 最小的重现来证明这个问题吗?我想了解您加载图像的方法的基准速度,并看看是否有改进的方法。

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
}
Run Code Online (Sandbox Code Playgroud)

  • @SPixy,您可以在 `didChangeDependency()` 中调用它。然而,这可能不是 100% 理想,因为 `didChangeDependency` 可以在小部件的生命周期中被多次调用。 (3认同)