概要
- Pan和Scale不能同时使用;
- 垂直和水平事件不能同时使用;
- 双击事件要获取点击坐标,需要Pan事件
Pan和Scale不能同时使用
代码:
GestureDetector(
child:
Text(
'手势操作遇到问题的测试',
style:TextStyle(color: Colors.orangeAccent, fontSize: 20),
),
/*********************** Pan事件 *****************************/
onPanDown: (DragDownDetails details){
print(''
'onPanDown 点击处的坐标为:${details.globalPosition} '
'x轴:${details.globalPosition.dx} y轴坐标: ${details.globalPosition.dy}');
},
onPanStart: (DragStartDetails details){
print(''
'onPanStart 点击处的坐标为:${details.globalPosition} '
'x轴:${details.globalPosition.dx} y轴坐标: ${details.globalPosition.dy}');
},
onPanUpdate: (DragUpdateDetails details){
print(''
'onPanStart 点击处的坐标为:${details.globalPosition} '
'x轴:${details.globalPosition.dx} y轴坐标: ${details.globalPosition.dy}');
},
onPanEnd: (DragEndDetails details){
print('onPanEnd 点击处的坐标为:${details.primaryVelocity.toString()}');
},
onPanCancel: (){
print('onPanCancel');
},
/*********************** Pan事件 *****************************/
onScaleStart: (ScaleStartDetails details){},
onScaleUpdate: (ScaleUpdateDetails details){},
),
运行效果:
注意这句话:
垂直和水平事件不能同时使用
需要做处理、判断、区分,
否则会同时触发 垂直和水平 两种事件;
双击事件要获取点击坐标,需要Pan(Tap)事件
- 因为
onDoubleTap()【双击手势回调】获取不了坐标,
需要借助onTapDown()和onTapUp()的Details才行:
本文深入探讨Flutter中手势识别器的使用限制,如Pan和Scale、垂直和水平事件不能同时使用的问题,以及如何通过Pan事件获取双击坐标的技巧。文章提供了代码示例,帮助开发者理解并解决手势操作冲突。

1384

被折叠的 条评论
为什么被折叠?



