GestureDetector 在滚动时不接收事件

GestureDetector does not receive events while scrolling

我有一个 ListView,其中每个项目都有自己的 onTap 事件。如果我在列表空闲(不滚动)时点击一个项目,一切正常,但如果我在滚动动作后立即点击一个项目,GestureDetector 不会收到任何东西,这使得应用程序对快速导航的用户没有反应.有没有办法防止这种行为?

class _ScrollClickTestPageState extends State<ScrollClickTestPage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Test"),
      ),
      body: ListView.builder(
        shrinkWrap: true,
        itemCount: 20,
        itemBuilder: (context,index) {
          return GestureDetector(
            behavior: HitTestBehavior.opaque,
            onTap: () => print("test: click detected"),
            child: Container(
              width: double.maxFinite,
              height: 200,
              color: ([...Colors.primaries]..shuffle()).first,
              child: Center(
                child: Text(
                  '$index',
                  style: Theme.of(context).textTheme.headline4,
                ),
              ),
            ),
          );
        }
      ),
    );
  }

}

好吧,我有这个问题的工作模型: 试试下面的代码: 替换你的onTap: () => print("test: click detected") onTap: () => {print("test: click detected")} 并且你的点击手势正在工作。