Flutter 颤振-滚动控制器未被监听
我正在颤振中进行分页,而scrollController.addListener不工作。它没有给我任何错误 这是代码Flutter 颤振-滚动控制器未被监听,flutter,dart,Flutter,Dart,我正在颤振中进行分页,而scrollController.addListener不工作。它没有给我任何错误 这是代码 void initState() { super.initState(); _getContacts(); _scrollController.addListener( () { double maxScroll = _scrollController.position.maxScrollExtent; do
void initState() {
super.initState();
_getContacts();
_scrollController.addListener(
() {
double maxScroll = _scrollController.position.maxScrollExtent;
double currentScroll = _scrollController.position.pixels;
double delta = MediaQuery.of(context).size.height * 0.25;
if (maxScroll - currentScroll < delta) {
_getMoreContacts();
}
},
);
}
void initState(){
super.initState();
_getContacts();
_scrollController.addListener(
() {
double maxScroll=\u scrollController.position.maxScrollExtent;
双currentScroll=\u scrollController.position.pixels;
double delta=MediaQuery.of(context).size.height*0.25;
如果(maxScroll-currentScroll<增量){
_getMoreContacts();
}
},
);
}
以下是在scrollController.AddListener中调用的代码
_getMoreContacts() async {
print('getting more contacts called');
if (_moreContactsAvailable == false) {
print('no more contacts');
return;
}
if (_gettingMoreContacts == true) {
return;
}
_gettingMoreContacts = true;
Query q = firestore
.collection('Phonebook')
.orderBy('name')
.startAfter([_lastDocument.data()['name']]).limit(_perPage);
QuerySnapshot querySnapshot = await q.get();
if (querySnapshot.docs.length < _perPage) {
_moreContactsAvailable = false;
}
_lastDocument = querySnapshot.docs[querySnapshot.docs.length - 1];
contacts.addAll(querySnapshot.docs);
setState(() {});
_gettingMoreContacts = false;
}
\u getMoreContacts()异步{
打印(“获取更多呼叫的联系人”);
if(_morecontsavaailable==false){
打印(“不再有联系人”);
返回;
}
如果(_gettingMoreContacts==true){
返回;
}
_gettingMoreContacts=true;
查询q=firestore
.collection('电话簿')
.orderBy('名称')
.startAfter([\u lastDocument.data()['name']]).limit(\u每页);
QuerySnapshot QuerySnapshot=等待q.get();
if(querySnapshot.docs.length<\u每页){
_moreContactsAvailable=错误;
}
_lastDocument=querySnapshot.docs[querySnapshot.docs.length-1];
contacts.addAll(querySnapshot.docs);
setState((){});
_gettingMoreContacts=false;
}
必须将控制器
分配给一些滚动小部件,如列表视图
,网格视图
等
例如:
ListView(
controller: _scrollController,
将控制器分配给相应的滚动窗口小部件,这样就可以了。必须将控制器
分配给一些滚动窗口小部件,如列表视图
,网格视图
等
例如:
ListView(
controller: _scrollController,
将控制器分配给相应的滚动小部件,那么这应该可以工作。我已经将其分配给listview,滚动工作正常,但当涉及分页时,scrollcontroller.addListener在initstate函数中不工作。我已经编辑了问题,我已经添加了在_scrollController.addListenerus addListener()中被调用的代码,在滚动时被调用?这是主要的问题put print语句和check是的,我这样做了,但它没有打印语句。check我已经将其分配给listview,滚动工作正常,但当涉及分页时_scrollcontroller.addListener在initstate函数中不起作用。我已经编辑了问题,我已经添加了在_scrollController.addListenerus addListener()中被调用的代码,在滚动时被调用?这是主要的问题,把打印语句和检查是的,我这样做了,它没有打印语句。检查你初始化了吗_scrollController=scrollController();你初始化了吗_scrollController=scrollController();