文章目录
一、Flutter 点击事件处理
二、GestureDetector 常用事件说明
三、完整代码示例
四、相关资源
一、Flutter 点击事件处理
Flutter 点击事件处理的组件是 GestureDetector 组件 ;
GestureDetector 组件中可设置的选项 , 在构造函数中的可选参数中, 大部分是回调方法设置字段 ;
class GestureDetector extends StatelessWidget { GestureDetector({ Key key, this.child, this.onTapDown, // 按下 this.onTapUp, // 抬起 this.onTap, // 单击 this.onTapCancel, // 单击取消 this.onSecondaryTapDown, this.onSecondaryTapUp, this.onSecondaryTapCancel, this.onDoubleTap, // 双击 this.onLongPress, // 长按 this.onLongPressStart, this.onLongPressMoveUpdate, this.onLongPressUp, this.onLongPressEnd, this.onVerticalDragDown, this.onVerticalDragStart, this.onVerticalDragUpdate, this.onVerticalDragEnd, this.onVerticalDragCancel, this.onHorizontalDragDown, this.onHorizontalDragStart, this.onHorizontalDragUpdate, this.onHorizontalDragEnd, this.onHorizontalDragCancel, this.onForcePressStart, this.onForcePressPeak, this.onForcePressUpdate, this.onForcePressEnd, this.onPanDown, this.onPanStart, this.onPanUpdate, this.onPanEnd, this.onPanCancel, this.onScaleStart, this.onScaleUpdate, this.onScaleEnd, this.behavior, this.excludeFromSemantics = false, this.dragStartBehavior = DragStartBehavior.start, }) }
GestureDetector 组件用法 :
设置各种回调事件 : 在 onXxx 字段设置各种回调事件 , 字段类型是 void Function() 类型的 ;
作用组件 : 在 child 字段设置手势检测的主体组件 , 就是监听哪个组件的手势事件 ;
// 手势检测组件 GestureDetector( // 点击事件 onTap: (){ print("双击"); }, // 双击事件 onDoubleTap: (){ print("双击"); }, // 长按事件 , ()=>方法名(参数列表) 即可回调一个现有方法 onLongPress: () => _longPress(), // 点击取消 onTapCancel: (){ print("点击取消"); }, // 点击按下 onTapDown: (e){ print("点击按下"); }, // 点击抬起 onTapUp: (e){ print("点击抬起"); }, // 手势检测的作用组件 , 监听该组件上的各种手势 child: Container( // 子组件居中 alignment: Alignment.center, // 内边距 padding: EdgeInsets.all(100), // 背景装饰 decoration: BoxDecoration( color: Colors.green, ), child: Text( "手势检测", style: TextStyle( fontSize: 50, color: Colors.red, ), ), ), )
二、GestureDetector 常用事件说明
GestureDetector 常用事件说明 :
onTap : 单击事件 ;
onDoubleTap : 双击事件 ;
onLongPress : 长按事件 ;
onTapCancel : 点击事件取消 , 一个完整的点击事件由按下 , 抬起 组成 , 如果按下后一直没有松开 , 就变成了长按操作 , 此时单击事件自动取消 ; 如果按下后滑出了 child 组件 , 则自动变为点击取消事件 ;
onTapDown : 单击按下事件 ;
onTapUp : 单击抬起事件 ;