flutter手势检测及触摸

发表于 2021-04-01 09:46:11.190,阅读数:1709

如果widget本身不支持事件检测,则可以在外面包裹一个GestureDetector,并给它的onTap属性传递一个函数

class SampleApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      body: Center(
        child: GestureDetector(
          child: FlutterLogo(
            size: 200.0,
          ),
          onTap: (){
            print("tap");
          },
        ),
      ),
    );
  }
}

使用GestureDetector,可以监听多种手势

  • 点击
    • onTapDown — 在特定的位置轻触手势接触了屏幕
    • onTapUp — 在特定的位置产生了一个轻触手势,并停止接触屏幕
    • onTap — 触发了onTapDown 但没能触发tap
  • 双击
    • onDoubleTap — 用户在一个位置快速点击了两下屏幕
  • 长按
    • onLongPress — 用户在一个位置长时间接触屏幕
  • 垂直拖动
    • onVerticalDragStart — 接触了屏幕,并且可能会垂直移动
    • onVerticalDragUpdate — 接触了屏幕,并且继续在垂直方向移动
    • onVerticalDragEnd — 之前接触了屏幕并且垂直移动,并在停止接触屏幕前以某个垂直的速度移动
  • 水平拖动
    • onHorizontalDragStart — 接触了屏幕,并且可能会水平方向移动
    • onHorizontalDragUpdate — 接触了屏幕,并且继续在水平方向移动
    • onHorizontalDragUpdate — 之前接触屏幕并水平移动的触摸点与屏幕分离

Terly

面向openAI编程的程序员