我正在尝试从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相机获得的典型图像尺寸。
答案 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
之后在发布模式下尝试了它。
与其他启动器一样,它在我的设备上的运行情况也很好。