📜  GestureDetector 类 - Dart (1)

📅  最后修改于: 2023-12-03 14:41:23.313000             🧑  作者: Mango

GestureDetector 类 - Dart

简介

GestureDetector 是一个在 Flutter 中常用的手势识别器类,它用于识别用户在设备上的各种手势操作,例如点击、双击、拖动、缩放等。通过使用 GestureDetector 类,开发者可以在 Flutter 应用中轻松地实现交互式的用户界面。

用法

首先,需要在 Flutter 项目中添加 fluttergestures 依赖:

dependencies:
  flutter:
    sdk: flutter
  gestures: ^2.0.0

然后,在 Dart 文件中导入 gestures 包:

import 'package:flutter/gestures.dart';
创建 GestureDetector

要创建一个 GestureDetector 实例,可以通过将一个或多个回调函数分配给不同的手势识别器属性来实现。以下是一些常见的手势识别器属性和对应的回调函数:

  • onTap:当用户轻触屏幕时触发的回调函数。
  • onDoubleTap:当用户双击屏幕时触发的回调函数。
  • onLongPress:当用户长按屏幕时触发的回调函数。
  • onPanUpdate:当用户在屏幕上拖动时触发的回调函数。
  • onScaleUpdate:当用户在屏幕上缩放时触发的回调函数。

以下示例演示了如何创建一个简单的 GestureDetector

GestureDetector(
  onTap: () {
    // 当用户轻触屏幕时执行的代码
  },
  onDoubleTap: () {
    // 当用户双击屏幕时执行的代码
  },
  onLongPress: () {
    // 当用户长按屏幕时执行的代码
  },
  onPanUpdate: (details) {
    // 当用户拖动屏幕时执行的代码
    // 可以使用 `details.delta` 获取拖动距离
  },
  onScaleUpdate: (details) {
    // 当用户缩放屏幕时执行的代码
    // 可以使用 `details.scale` 获取缩放比例
  },
  child: Container(
    // 在这里放置交互式的 UI 元素
  ),
)
手势识别器属性

GestureDetector 类提供了许多手势识别器属性,以下是一些常用属性的说明:

  • onTapDown:当用户按下屏幕时触发的回调函数。
  • onTapUp:当用户松开屏幕时触发的回调函数。
  • onTapCancel:当触摸被取消时触发的回调函数。
  • onSecondaryTapDown:当用户以非主要手指按下屏幕时触发的回调函数。
  • onSecondaryTapUp:当用户以非主要手指松开屏幕时触发的回调函数。
  • onSecondaryTapCancel:当非主要触摸被取消时触发的回调函数。
  • onDoubleTapDown:当用户第二次轻触屏幕时触发的回调函数。
  • onLongPressMoveUpdate:当用户在长按屏幕的同时移动手指时触发的回调函数。

你可以根据自己的需求选择适当的回调函数来处理不同的手势操作。

其他属性

除了手势识别器属性外,GestureDetector 还提供了其他一些常用属性:

  • behavior:定义手势的行为方式,例如不透明(opaque)或透明(translucent)。
  • excludeFromSemantics:是否在语义树中排除此手势识别器。
  • dragStartBehavior:定义拖动行为的方式,例如开始于手势开始位置或拖动累积位置。
  • child:放置要交互的 UI 元素的容器。
总结

GestureDetector 类是 Flutter 中用于手势识别的重要类之一。通过合理地使用 GestureDetector,可以轻松地处理用户在应用中的各种手势操作。快去试试吧!

参考文档:GestureDetector class - gestures library - Dart API