滑动List类型View卡顿问题总结

快速滑动List类型View卡顿问题总结

ListView,GridView,RecycleView等在滑动时会不断刷新子Item View,在实际开发中,经常会碰到滑动时卡顿,或者快速滑动时不流畅的现象。
所以在这里纪录一些相关问题排查解决的办法:

1. AdaptergetView方法使用ViewHolder技术重用convertView

这一点目前基本是常识了。另外建议用RecycleView替代ListView,RecycleView有着更好的复用、灵活、高性能,而且RecycleView的Adapter已经实现好了ViewHolder的技术细节。

2. Adapter的getViewonBindView方法不要做耗时的操作。
3. Item View布局尽量要简单,不要嵌套过深。

可以将复杂的Item拆分成多个简单的不同type的Item。

4. Item中有大量图片时,使用异步加载图片,图片尺寸要压缩以减少内存占用。
5. Item内容尽量只计算生成一次,以避免在getView方法中多次计算生成。
6. getView方法中避免new操作,比如new Listener之类。
7. 在快速滑动时,Item中有大量图片的,可以暂停图片加载,滑动停止时再恢复图片加载。

这样可以避免图片加载框架被大量的任务堵塞,无谓消耗内存、cpu资源,也导致ui线程不能及时响应、界面卡顿不流畅的问题;而好的图片加载框架也应该要支持暂停、恢复的功能,以及对同一个Target(ImageView等)重复的图片加载请求处理策略。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容