我有一个 flutter 项目,当我尝试制作一个 invinite 列表视图但滚动控制器不起作用时,没有错误。也刷新指示器不起作用,但如果列表视图刷新工作的主要错误。
有关信息,如果主设置为 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) {
Run Code Online (Sandbox Code Playgroud)
添加physics: const AlwaysScrollableScrollPhysics()到刷新指示器
body: RefreshIndicator(
onRefresh: _refreshList,
child: ListView.builder(
controller: _scrollController,
physics: const AlwaysScrollableScrollPhysics(),
itemCount: items.length,
itemBuilder: (context, index) => ListTile(
title: Text('Item ${items[index]}'),
),
),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |