检测用户何时停止触摸屏幕

时间:2019-11-18 14:29:36

标签: flutter dart

项目

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

  int scrolled = 0;

  ....

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

问题

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

因此,我开始分析其他所有GestureDetector回调的行为,寻找某种解决方案,但即使onTapUp(), onPanEnd()也这样做

我想念什么? 谢谢

1 个答案:

答案 0 :(得分:1)

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

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