在Flutter中检测垂直滑动方向

如何检测用户何时垂直向上或向下滑动?

我一直在使用swipedetector软件包,但是现在,它给了我异常

The getter 'globalPosition' was called on null.

回答:

import 'package:flutter/material.dart';

class SwipeDetectorExample extends StatefulWidget {

final Function() onSwipeUp;

final Function() onSwipeDown;

final Widget child;

SwipeDetectorExample({this.onSwipeUp, this.onSwipeDown, this.child});

@override

_SwipeDetectorExampleState createState() => _SwipeDetectorExampleState();

}

class _SwipeDetectorExampleState extends State<SwipeDetectorExample> {

//Vertical drag details

DragStartDetails startVerticalDragDetails;

DragUpdateDetails updateVerticalDragDetails;

@override

Widget build(BuildContext context) {

return GestureDetector(

onVerticalDragStart: (dragDetails) {

startVerticalDragDetails = dragDetails;

},

onVerticalDragUpdate: (dragDetails) {

updateVerticalDragDetails = dragDetails;

},

onVerticalDragEnd: (endDetails) {

double dx = updateVerticalDragDetails.globalPosition.dx -

startVerticalDragDetails.globalPosition.dx;

double dy = updateVerticalDragDetails.globalPosition.dy -

startVerticalDragDetails.globalPosition.dy;

double velocity = endDetails.primaryVelocity;

//Convert values to be positive

if (dx < 0) dx = -dx;

if (dy < 0) dy = -dy;

if (velocity < 0) {

widget.onSwipeUp();

} else {

widget.onSwipeDown();

}

},

child: widget.child);

}

}

以上是 在Flutter中检测垂直滑动方向 的全部内容, 来源链接: utcz.com/qa/427046.html

回到顶部