在 GestureDetector 中滚动 ListView

Scrolling a ListView inside a GestureDetector

我正在尝试检测 ListView 何时滚动,以便我可以在那时关闭键盘。

目前,我的 ListView 包裹在 GestureDetector 中。手势检测器的 onVerticalDragStart 设置为关闭键盘。但是,当我像这样拦截事件时,它阻止了拖动事件向下冒泡到 ListView 所以我实际上不能再滚动视图了。

我尝试在 GestureDetector 上设置 behavior: HitTestBehavior.translucent,但由于某些原因,这并没有达到我想要的效果。如何在不子类化 ListView 的情况下实现此行为?

与其将 ListView 包装在 GestureDetector 中,不如将监听器(通过方法 addListener)添加到 ScrollController(假设你已经没有使用一个)每次状态改变时调用 VoidCallback

我会将 ListView 包装在 NotificationListener 而不是 GestureDetector 中。