滑动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等)重复的图片加载请求处理策略。

你可能感兴趣的:(滑动List类型View卡顿问题总结)