[Flutter]解决ListView滑动卡顿

304 阅读1分钟

第一次写Flutter页面,用ListView加载数据,数据的样式有几种,类似朋友圈,有纯文字,有单张图片,和多张图片的样式。在加载第一页的时候还可以,挺流畅的,但加载第二页,第三页开始,ListView变得滑动的过程中卡卡的,因为我也写了Android原生页面,没有发现卡顿,非常流畅,因此怀疑我不恰当使用ListView导致。 原来的代码使用的是ListView.builder(),后来改用ListView.custom(),问题解决,流畅回来了。这两个方法区别比较大,ListView.builder()比较简单,返回itemCount和Widgets就可以了。ListView.custom()则需要SliverChildBuilderDelegate(builder,findChildIndexCallback,childCount)。 配合下拉刷新使用时,如果数据全替换了,可能findChildIndexCallback找不到index,这时需要返回null值,就可以重新生成child。