我正在使用ListView个小部件将项目显示为列表.在窗口3中,查看项目必须将中间的项目放在中间.

那么,当滚动停止时,我如何检测ListView的位置呢?

如何检测ListView滚动停止?

推荐答案

我使用的是100,这是一个侦听树上冒泡的通知的小部件.然后使用101,表示滚动已停止.

对于滚动位置,我使用_scrollController,类型是101.

NotificationListener(
  child: ListView(
    controller: _scrollController,
    children: ...
  ),
  onNotification: (t) {
    if (t is ScrollEndNotification) {
      print(_scrollController.position.pixels);
    }
  },
),

Flutter相关问答推荐

当仅点击一行时,所有行都被选中

如何在不使用NULL-check(!)的情况下缩小`FutureBuilder.Builder()`内部的`Snaphot`范围

如何使用新的Riverpod语法将依赖传递给AsyncNotifier?

Flutter 应用程序中的Firebase实时数据库中的orderByChild()不适用于我

Flutter :在后台实现振动

GetConnect Post API调用在Flutter Web中不起作用说:415不支持的媒体类型

如何给按钮的边框半径?

Flutter Dismissible 不会在 startToEnd 滑动时被关闭

使用Flutter项目设置Firebase遇到困难?这些解决方案或许能帮到你!

Flutter: pie_chart 插件动画滚动问题

使 Row 中的元素保持在中间的空间,如果它们太大,则将它们包裹起来

如何在 Flutter (iOS) 中解决这个问题

如果不刷新页面,我看不到从 Firestore 中提取的数据

MediaQuery 在不同手机上不一致

Flutter:为什么我的 listTile colored颜色 被容器 colored颜色 覆盖了?

在 Flutter 中使用 HardwareKeyboard 时所有键都没有响应

如何修复int类型不是String类型的子类型

Flutter - 异步文件读取异常处理

CircleAvatar 在 ListTile 中领先

在flutter web中重新加载页面时保留一些状态数据的有效方法是什么?