首页 > 解决方案 > 检测用户何时停止触摸屏幕

问题描述

项目

嗨,我GestureDetector在 Flutter 中苦苦挣扎。我想做的非常简单:获取用户输入的垂直拖动距离。我设法用这个示例代码做到了这一点

  int scrolled = 0;

  ....

  GestureDetector(
    onVerticalDragUpdate: (d){
      scrolled += pos;
    },     
    //TODO reset scrolled when finger leaves the screen  
  ),

问题

问题是我想检测用户手指何时离开屏幕以重置滚动variable。使用onVerticalDragEnd不会成功,因为即使用户停止滚动并且手指仍在显示屏上,它也会被触发。

所以我开始分析其他所有GestureDetector回调的行为,寻找一些解决方案,但甚至onTapUp(), onPanEnd()做同样的事情

我错过了什么?谢谢

标签: flutterdart

解决方案


用于Listener检测每个触摸输入。

final touchDetector = new Listener(
  behavior: HitTestBehavior.translucent,
  onPointerUp: (_) => resetScroll(),
  child: child,
);

推荐阅读