如何让一个回调函数调用onTap,另一个onTapDown,另一个onTapUp而不重叠?

问题描述 投票:0回答:1

我有这个用户界面: 当用户点击右侧时,我们会转到下一个故事,左侧我们会转到上一个故事,并按住任意位置应停止顶部的自动加载。我目前正在使用

GestureDetector
并使用三个回调

  • onTap
    转到下一个或上一个故事
  • onTapDown
    暂停加载程序
  • onTapUp
    恢复加载程序

问题是

onTap
onTapUp
调用,所以当我尝试暂停(例如按住右侧)时,在我抬起手指后它会立即转到下一个故事。

flutter gesture
1个回答
0
投票

尝试使用 onHorizontalDragStart、onHorizontalDragEnd 和 onHorizontalDragUpdate 的组合,而不是 onTapDown 和 onTapUp。这将使您能够区分点击和拖动,从而更好地控制暂停和恢复操作。

GestureDetector(onHorizontalDragStart: (details) {
    setState(() {
      _isLoading = true;
    });
  },
  onHorizontalDragEnd: (details) {
    setState(() {
      _isLoading = false;
    });
  },
  onHorizontalDragUpdate: (details) {
    // You can handle swipe gestures here if needed
  },
© www.soinside.com 2019 - 2024. All rights reserved.