flutter GestureDetector

手势
手势表示由一个或多个指针移动组成的动作。主要有以下几种:

点击
onTapDown:指针已经在特定位置与屏幕接触。
onTapUp:指针停止在特定位置与屏幕接触。
onTap :点击事件触发。
onTapCancel: 先前指针触发的onTapDown不会再触发点击事件。

双击
onDoubleTap:用户快速连续两次在同一位置轻敲屏幕。
长按
onLongPress:指针在相同位置长时间保持与屏幕接触。
垂直拖动
onVerticalDragStart:指针已经与屏幕接触并可能开始垂直移动。
onVerticalDragUpdate 指针与屏幕接触并已沿垂直方向移动。
onVerticalDragEnd 先前与屏幕接触并垂直移动的指针不再与屏幕接触,并且在停止接触屏幕时以特定速度移动。
水平拖动
onHorizontalDragStart:指针已经接触到屏幕并可能开始水平移动
onHorizontalDragUpdate:指针与屏幕接触并已沿水平方向移动
onHorizontalDragEnd:先前与屏幕接触并水平移动的指针不再与屏幕接触,并在停止接触屏幕时以特定速度移动。

如何对这些手势进行检测呢?可以使用GestureDetector。

使用GestureDetector
要想检测单击、双击、垂直拖动等手势,只要用GestureDetector嵌套要检测手势Widget并实现想要监听的手势的方法就行。

class GestureDetectorWidget extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return MaterialApp(
 	  title: "Flutter",
  	  home: Scaffold(
   	  appBar: AppBar(
      title: Text("GestureDetector示例"),
    ),
    body: Center(
      child: GestureDetector(
        child: Text('手势识别'),
        onTap: () {
          print('点击');
        },
        onDoubleTap: () {
          print('双击');
        },
        onLongPress: () {
          print('长按');
        },
        onHorizontalDragStart: (DragStartDetails details) {
          print('水平拖动');
        },
      ),
    ),
  ),
);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值