【发布时间】:2020-06-22 11:29:17
【问题描述】:
我做了无限滚动,但我想在加载列表项时添加 CircularProgressIndicator,但我做不到。那么如何根据代码添加 CircularProgressIndicator 下来:
ListView.builder(
padding: EdgeInsets.symmetric(
vertical: 10, horizontal: 10),
scrollDirection: Axis.vertical,
shrinkWrap: true,
primary: false,
itemCount: _con.brandComplaints.length,
itemBuilder: (context, index) {
if (_con.isLoadingComplaints == false) {
return Padding(
padding: const EdgeInsets.only(
bottom: 15.0),
child: ComplaintItemWidget(
complaint: _con.brandComplaints
.elementAt(index),
),
);
} else {
return Center(
child: CircularProgressIndicator());
}
},
),
----------------滚动列表项的滚动侦听器 ------------- ---------------------
_scrollListener() {
if (int.parse(_con.brand.complaintTotal) == _con.brandComplaints.length) {
return;
}
//print(_scrollController.position.extentAfter);
if (_scrollController.position.extentAfter <= 0 && isPageLoading ==false) {
_con.listenForBrandComplaints(_con.brand.id);
}
}
---------------控制器------- ------------
void listenForBrandComplaints(String idBrand) async {
//setState(() => isLoadingComplaints = true);
final Stream<Complaint> stream =
await getBrandComplaints(idBrand, brandComplaints.length);
stream.listen((Complaint _complaint) {
setState(() => brandComplaints.add(_complaint));
}, onError: (a) {
//setState(() => isLoadingComplaints = false);
print(a);
}, onDone: () {
//setState(() => isLoadingComplaints = false);
//complaintOffset += brandComplaints.length;
});
}
【问题讨论】: