首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CustomScrollView flutter中检测DragEnd?

在CustomScrollView flutter中检测DragEnd?
EN

Stack Overflow用户
提问于 2020-10-06 20:49:23
回答 1查看 503关注 0票数 1

我想要检测拖动CustomScrollView的垂直结束,我所做的是这样的:

代码语言:javascript
复制
GestureDetector(
  onVerticalDragEnd: (details) {}
  child: CustomScrollView(...)
);

但是它不起作用,这两个小部件似乎有冲突,我正在寻找解决这个问题的方法

EN

回答 1

Stack Overflow用户

发布于 2020-10-06 21:36:24

使用GestureDetector不是正确的方式,以下是当您停止拖动滚动视图时触发方法的一种方式:

代码语言:javascript
复制
class MyWidget extends StatelessWidget {
  _onEndScroll(ScrollMetrics metrics) {
    print('Stopped Dragging');
  }
  
  @override
  Widget build(BuildContext context) {
    return NotificationListener<ScrollNotification>(
      onNotification: (scrollNotification) {
        if (scrollNotification is ScrollEndNotification) {
          _onEndScroll(scrollNotification.metrics);
        }
        return false;
      },
      child: SingleChildScrollView(
          child: Column(children: <Widget>[
        ...List<Widget>.generate(
          100,
          (index) => ListTile(title: Text(index.toString())),
        )
      ])),
    );
  }
}

只需将滚动视图包装在NotificationListener小部件中,然后您将能够从滚动视图获得任何通知,并且您只需要根据通知的类型来管理操作。(我在onNotification的末尾返回false,以继续侦听即将到来的通知。)

Test the full code on DartPad

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64226169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档