在Android中优化listview有什么牛逼的方案么?

目前我知道的方式有:

  1. 局部刷新listview,也就是手动调用listview的getview方法

  2. 用tag标识当前图片的url,如果判断新的数据和老的数据一样,就不进行刷新

  3. 启动线程来做耗时的操作,比如加载图片,先用空白图片留空

  4. 在初始化时初始监听器对象,不重复创建listener

  5. 在item中避免用widget做,减少计算

  6. 避免item中采用复杂布局,如果遇到很复杂的建议将一个item分开做

常规就是你讲的这些了.

Facebook有个拆分item的方案大概就是你说的6

自备梯子
https://code.facebook.com/posts/879498888759525/fast-rendering-news-feed-on-android/

没梯子可以看这个
http://blog.aaapei.com/article/2015/02/facebookxin-wen-ye-listviewyou-hua

Instagram有个预渲染的文本的方案

http://instagram-engineering.tumblr.com/post/114508858967/improving-comment-rendering-on-android

高速滑动时不加载图片。
图片文件的磁盘缓存。
图片文件的内存弱引用缓存。
图片对象的内存弱引用缓存。
图片的淡入加载。
ListView没什么牛逼的。

可以直接使用RecyclerView,RecyclerView提供了原生的局部刷新功能

发表评论

电子邮件地址不会被公开。 必填项已用*标注