@override
Widget build(BuildContext context) {
return ListView.separated(
itemCount: friendListData.length,
itemBuilder: (context, index) {
return FriendCard(data: friendListData[index]);
},
separatorBuilder: (context, index) {
return Divider(
height: .5,
indent: 75,
color: Color(0xFFDDDDDD),
);
},
);
}
}
预览
看代码可以知道不同点就在于实现了separatorBuilder
这个函数,通过它我们可以自定义每个子元素之间的分割线了。
2.4 小结
到目前为止,我们一共学习了ListView
,ListView.build
和ListView.separated
三种创建列表的方式,它们各自都有其适用的场景,所以遇到需求时还是得具体问题具体分析。
不过,其实ListView
还有一个构造函数:ListView.custom
。而且ListView.build
和ListView.separated
最终都是通过ListView.custom
实现的。但是本文并不打算介绍这种方法,因为一般情况下前面提到的三种构造方法就已经足够解决问题了(以后遇到实际问题再研究这个)。
3. ListView进阶方法
上文我们介绍了ListView
的基础用法,但是在实际的产品中,我们还会遇到列表下拉刷新
和上拉加载
等需求。接下来,就让我们学习下Flutter
中应该如何实现此类交互操作。
3.1 下拉刷新
要在Flutter
中实现列表的下拉刷新效果,其实非常简单,因为Flutter
给我们封装好了一个RefreshIndicator
组件,使用起来也非常方便。看下示例代码:
class PullDownRefreshList extends StatefulWidget {
const PullDownRefreshList(