我正在使用ScrollController for SingleChildScrollView小工具,我想要检测滚动开始、结束/停止和仍在滚动的时间?

我怎么能发现,我用的是Listene

scrollController = ScrollController()
      ..addListener(() {
        scrollOffset = _scrollController.offset;
      });

也试着用_scrollController.position.activity.velocity,但没有帮助我.

另外还有

_scrollController.position.didEndScroll();
_scrollController.position.didStartScroll();

但是我怎么才能使用它呢?

推荐答案

从这个链接

把你的SingleChildScrollView改成NotificationListener,然后更新你的代码,比如..

NotificationListener<ScrollNotification>(
                onNotification: (scrollNotification) {
                  if (scrollNotification is ScrollStartNotification) {
                    _onStartScroll(scrollNotification.metrics);
                  } else if (scrollNotification is ScrollUpdateNotification) {
                    _onUpdateScroll(scrollNotification.metrics);
                  } else if (scrollNotification is ScrollEndNotification) {
                    _onEndScroll(scrollNotification.metrics);
                  }
                },
                child: SingleChildScrollView(
                /// YOUR OWN CODE HERE
               )
)

然后像这样声明方法

_onStartScroll(ScrollMetrics metrics) {
    print("Scroll Start");
  }

  _onUpdateScroll(ScrollMetrics metrics) {
    print("Scroll Update");
  }

  _onEndScroll(ScrollMetrics metrics) {
    print("Scroll End");
  }

我们会以特殊的方式通知您.

Flutter相关问答推荐

Flutter -带有TextAlign.right的文本字段不显示空白

如何在Flutter 屏幕中添加箭头形状

未处理异常:字符串类型不是值类型子类型的子类型'

ShaderMask上的文本渐变问题

如何使用Firebase Firestore来获取外部集合中的文档子集合中的文档

Flutter creating Constant.dart InputDecoration section put pass in hintText

Flutter OpenID Connect无效参数:redirect_uri using Keycloak

如何在不注销的情况下刷新Firebase身份验证用户

在 flutter 吧蜂巢中拯救主题

当我转到其他屏幕并按下后退按钮时,屏幕将不会刷新

使用 Firebase Realtime 实现高效流式传输

Flutter中有没有办法区分鼠标左右平移?

Flutter: pie_chart 插件动画滚动问题

如何流畅切换画面?

如何限制用户每 24 小时执行的操作数?

如何在 Flutter 执行通知时运行后台代码?

如何在 flutter 中过滤 DateTime(intl)?

如何使用 Row 和 Column 制作 L 形布局?

在 flutter 中使用 StreamBuilder 在文本字段中键入时显示过滤记录

Firebase Firestore 查询