GestureDetector(
onVerticalDragStart: _onVerticalDragStart,
onVerticalDragUpdate: _onVerticalDragUpdate,
onVerticalDragEnd: _onVerticalDragEnd,
......
写三个方法对应到三个事件上。
late Offset _startSwipeOffset; //滑动开始时的定位
late Offset _endSwipeOffset; //滑动结束时的定位
//手指开始垂直滑动时的回调函数
void _onVerticalDragStart(DragStartDetails details) {
_startSwipeOffset = details.globalPosition;
}
//手指垂直滑动时的回调函数
void _onVerticalDragUpdate(DragUpdateDetails details) {
_endSwipeOffset = details.globalPosition;
}
//手指垂直滑动结束时的回调函数
void _onVerticalDragEnd(DragEndDetails details) {
final offsetDifference = _startSwipeOffset.dy - _endSwipeOffset.dy;
final swipeUp = offsetDifference > 0 ? true : false;
}
这个里面唯一需要注意的是“onVerticalDragEnd”的details里面是没有globalPosition的,所以只能在onVerticalDragUpdate里面获取滑动结束的定位。