GridView滚动滞后中的抖动图像

时间:2018-12-14 16:13:08

标签: flutter

我正在尝试从URL获取图像,然后将它们全部放入GridView并进行滚动。在模拟器中,滚动非常缓慢,滚动时cpu的使用率始终为100%。在将图像放入GridView之前,我应该对图像做些什么吗?

代码非常简单,就像这样。

final List<String> urls = [url1, url2, url3, url4];

GridView.builder(
  itemCount: urls.length,
  itemBuilder: (context, index) => Image.network(urls[index])
)

我也尝试了CachedNetworkImage并发生了同样的事情。图像尺寸是您从iPhone相机获得的典型图像尺寸。

2 个答案:

答案 0 :(得分:0)

请记住,如果您在调试模式下运行,仿真器将永远不会给您与物理设备相同的体验,请尝试在发布模式下运行(flutter run --release)。

也就是说,如果列表中没有很多图像,则可以尝试在开始时预先缓存这样的图像(也许是initState)。

urls.forEach((url){
    precacheImage(NetworkImage(url),context);
});

答案 1 :(得分:0)

我当时正在使用Flutter开发启动器应用程序,并且我使用Gridview显示了所有图标。 它们都是使用Image.memory从内存中加载的。

我使用flutter run在调试模式下在Redmi note 4(4 GB RAM)上运行了它。 当我滚动时,性能很差。有滚动延迟。

我在运行flutter build apk之后在发布模式下尝试了它。

与其他启动器一样,它在我的设备上的运行情况也很好。