我想要检测拖动CustomScrollView的垂直结束,我所做的是这样的:
GestureDetector(
onVerticalDragEnd: (details) {}
child: CustomScrollView(...)
);但是它不起作用,这两个小部件似乎有冲突,我正在寻找解决这个问题的方法
发布于 2020-10-06 21:36:24
使用GestureDetector不是正确的方式,以下是当您停止拖动滚动视图时触发方法的一种方式:
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,以继续侦听即将到来的通知。)
https://stackoverflow.com/questions/64226169
复制相似问题