Я следовал очень многим решениям в этом вопросе, и мне кажется, что ничего не работает! Я создал переменную слушателя следующим образом: ScrollController _scrollController = ScrollController();
И затем подключил ее к контроллеру ListView.builder
следующим образом:
ListView.builder(
controller: _scrollController,
itemCount: _posts.length,
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
Post post = _posts[index];
return FutureBuilder(
future: DatabaseService.getUserWithId(post.authorId),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return SizedBox.shrink();
}
User author = snapshot.data;
return PostItem(post: post, author: author);
});
},
),
, а затем вызвал функцию addListener в initState следующим образом:
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
// set up listener here
_scrollController.addListener(() {
print('are we even here?!');
if (_scrollController.offset >=
_scrollController.position.maxScrollExtent &&
!_scrollController.position.outOfRange) {
setState(() {
print('reached the bottom');
});
} else if (_scrollController.offset <=
_scrollController.position.minScrollExtent &&
!_scrollController.position.outOfRange) {
setState(() {
print("reached the top");
});
} else {
setState(() {
print('were here');
});
}
});
loadUserData();
_setupFeed();
}
print('are we even here?!');
никогда не отображается в logcat. Что я тут не так делаю?