我有一个扑朔迷离的项目, 当我尝试创建invinite listview但滚动控制器不起作用时,没有错误。 刷新指示器也不起作用,但是如果listview上的主要为false则刷新工作。
有关信息,如果主列表设置为false,则我的列表视图不起作用,因为此列表视图位于main.dart的列表视图内 代码
List<dynamic> list = [];
ScrollController _scrollController = ScrollController();
void initState() {
super.initState();
_loadData();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent - 50) {
_loadData();
}
});
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
Future<dynamic> _loadData() {
var offset = list.length;
return Api().postData("resto",
body: <String, String>{"offset": "$offset"}).then((dynamic res) {
if (res["error"]) throw new Exception(res["msg"]);
setState(() {
list.addAll(res['data']);
});
});
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
FlatButton(
child: Text(
"Filter Popularity",
style: TextStyle(color: Colors.red),
),
onPressed: () {},
),
Padding(
padding: const EdgeInsets.all(8.0),
child: list.length == 0 ? _shimmer() : _listResto()),
],
);
}
Widget _listResto() {
return ListView.builder(
controller: _scrollController,
primary: false,
shrinkWrap: true,
itemCount: list == null ? 0 : list.length,
itemBuilder: (context, i) {
答案 0 :(得分:1)
将physics: const AlwaysScrollableScrollPhysics()
添加到RefreshIndicator
body: RefreshIndicator(
onRefresh: _refreshList,
child: ListView.builder(
controller: _scrollController,
physics: const AlwaysScrollableScrollPhysics(),
itemCount: items.length,
itemBuilder: (context, index) => ListTile(
title: Text('Item ${items[index]}'),
),
),
)