@@ -356,15 +356,18 @@ class _CupertinoButtonState extends State<CupertinoButton> with SingleTickerProv
356
356
}
357
357
358
358
bool _buttonHeldDown = false ;
359
+ bool _tapInProgress = false ;
359
360
360
361
void _handleTapDown (TapDownDetails event) {
362
+ _tapInProgress = true ;
361
363
if (! _buttonHeldDown) {
362
364
_buttonHeldDown = true ;
363
365
_animate ();
364
366
}
365
367
}
366
368
367
369
void _handleTapUp (TapUpDetails event) {
370
+ _tapInProgress = false ;
368
371
if (_buttonHeldDown) {
369
372
_buttonHeldDown = false ;
370
373
_animate ();
@@ -377,19 +380,20 @@ class _CupertinoButtonState extends State<CupertinoButton> with SingleTickerProv
377
380
}
378
381
379
382
void _handleTapCancel () {
383
+ _tapInProgress = false ;
380
384
if (_buttonHeldDown) {
381
385
_buttonHeldDown = false ;
382
386
_animate ();
383
387
}
384
388
}
385
389
386
- void _handTapMove (TapMoveDetails event) {
390
+ void _handleTapMove (TapMoveDetails event) {
387
391
final RenderBox renderObject = context.findRenderObject ()! as RenderBox ;
388
392
final Offset localPosition = renderObject.globalToLocal (event.globalPosition);
389
393
final bool buttonShouldHeldDown = renderObject.paintBounds
390
394
.inflate (CupertinoButton .tapMoveSlop ())
391
395
.contains (localPosition);
392
- if (buttonShouldHeldDown != _buttonHeldDown) {
396
+ if (_tapInProgress && buttonShouldHeldDown != _buttonHeldDown) {
393
397
_buttonHeldDown = buttonShouldHeldDown;
394
398
_animate ();
395
399
}
@@ -512,7 +516,7 @@ class _CupertinoButtonState extends State<CupertinoButton> with SingleTickerProv
512
516
instance.onTapDown = enabled ? _handleTapDown : null ;
513
517
instance.onTapUp = enabled ? _handleTapUp : null ;
514
518
instance.onTapCancel = enabled ? _handleTapCancel : null ;
515
- instance.onTapMove = enabled ? _handTapMove : null ;
519
+ instance.onTapMove = enabled ? _handleTapMove : null ;
516
520
instance.gestureSettings = gestureSettings;
517
521
},
518
522
),
0 commit comments