首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复从网络加载图像时的Listview滚动jank

如何修复从网络加载图像时的Listview滚动jank
EN

Stack Overflow用户
提问于 2018-07-09 02:44:51
回答 4查看 7.3K关注 0票数 14

我使用Image.network对列表中的每一项使用以下代码加载图像:

代码语言:javascript
复制
Image getEventImageWidget(AustinFeedsMeEvent event) {
return event.photoUrl.isNotEmpty ?
          Image.network(
            event.photoUrl,
            width: 77.0,
            height: 77.0,
          ) : Image.asset(
            'assets/ic_logo.png',
            width: 77.0,
            height: 77.0,
          );
}

当我上下滚动时,列表有时会在加载图像时挂起。有什么方法可以在后台线程上加载图像吗?我能做些什么来帮助修复滚动性能?

注意:当我回顾这一点时,我发现我正在使用的图像非常大。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-09 15:28:09

有两种方法可以加快图像ListView的渲染速度。

第一种方法是在cacheExtent构造函数中将ListView属性设置为更大的值。此属性控制呈现多少屏幕外窗口小部件,并通过使呈现更快地启动而有所帮助。

第二种方法是使用precacheImage预缓存图像。Flutter有一个内存缓存,所以通常有必要将所有内容缓存到磁盘上,以获得良好的读取性能。相反,您可以要求Flutter提前下载这些图像,以便它们在构建小部件时已经准备好了。例如,如果您有图像的urls列表,那么在initState方法中,您可以请求Flutter缓存所有这些urls。

代码语言:javascript
复制
final List<String> imageUrls = [ /* ... */ ];

@override
void initState() {
  for (String url in imageUrls) {
    precacheImage(new NetworkImage(url), context);
  }
  super.initState();
}
票数 8
EN

Stack Overflow用户

发布于 2018-07-09 04:39:28

你确定你的图像不是很重吗?首先检查图像的大小。您还可以使用名为:图像的包

很简单:

代码语言:javascript
复制
new Image(image: new CachedNetworkImageProvider(url))

更新(包已更新)

代码语言:javascript
复制
CachedNetworkImage(
        imageUrl: "http://via.placeholder.com/350x150",
        placeholder: (context, url) => new CircularProgressIndicator(),
        errorWidget: (context, url, error) => new Icon(Icons.error),
     ),
票数 5
EN

Stack Overflow用户

发布于 2018-07-09 04:55:56

您还可以使用:

代码语言:javascript
复制
FadeInImage.assetNetwork(
  placeholder: 'assets/ic_logo.png',
  image: event.photoUrl,
  height: 77.0,
  width: 77.0,
  fit: BoxFit.cover,
  fadeInDuration: new Duration(milliseconds: 100),
),

但是,是的,你确定你的照片不是很大吗?Listview在呈现任何大小接近合理的东西时都没有问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51237648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档