在Flutter中,当用户开始滚动时,如何执行函数/方法?

qrjkbowd  于 2023-03-19  发布在  Flutter
关注(0)|答案(1)|浏览(90)

我有一个用户界面,上面有一系列可以改变大小的小部件,我有它们的控制器来阻止它们改变大小,使它们都只有一个大小。
我将它们构建在ListView.builder中,所以我希望当我的用户开始滚动时,我的所有小部件都会缩小,这样我就可以将itemExtent参数赋给ListView.builder,从而使滚动性能更好。

zvokhttg

zvokhttg1#

您可以使用NotificationListener<ScrollNotification>来观察小工具何时滚动。例如:

return NotificationListener<ScrollNotification>(
      onNotification: (scrollNotification) {
        if (scrollNotification is ScrollStartNotification) {
          // do something when it starts scrolling
        } else if (scrollNotification is ScrollUpdateNotification) {
          // do something else, or nothing
        } else if (scrollNotification is ScrollEndNotification) {
          // do something when it stops scrolling
        }
        return false;
      },
      child: ListView.builder(
        itemCount: 20,
        itemBuilder: (_, index) {
          return ListTile(
            title: Text('Item $index'),
          );
        },
      ),
    );

相关问题