如何使内部有状态小部件在Flutter中接收滚动事件?

时间:2019-12-19 07:38:55

标签: listview flutter gridview

我在ListView中有一个GridView,但是GridView包含在其他有状态的小部件中。我注意到从来没有调用过放在GridView上的ScrollController,但是我需要这样做,以便可以检测屏幕是否到达底部,以便可以加载下一批数据(无限滚动)。我应该怎么做?我试图将primary: true添加到GridView并将primary: false添加到ListView,但这不起作用。

class UserProfile extends StatefulWidget
-> final userId: String;
-> build () {
   -> ListView {
      -> children: [
         -> User avatar
         -> User name
         -> Action button
         -> TileGallery(userId: userId)

class TileGallery extends StatefulWidget
-> final _scrollController = Controller();
-> initState() {
   -> _scrollController.addListener(_onScroll);
-> build () {
   -> GridView {
      -> controller: _scrollController
-> _onScroll() {     // never called

对不起,奇怪的代码。实际代码中有太多无关的代码。事实是,我曾经将TileGallery用作独立的屏幕小部件(例如,在构建中具有Scaffold),然后调用了_onScroll()函数。我该怎么解决?

1 个答案:

答案 0 :(得分:1)

创建Controller实例,而不只是ScrollController