四时宝库

程序员的知识宝库

Flutter手势判断向上滑还是向下滑

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里面获取滑动结束的定位。


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接