-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Closed
Copy link
Labels
f: cupertinoflutter/packages/flutter/cupertino repositoryflutter/packages/flutter/cupertino repositoryf: gesturesflutter/packages/flutter/gestures repository.flutter/packages/flutter/gestures repository.frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
Description
When using CupertinoContextMenu on a widget which also has a GestureDetector with onTap, both the context menu and the other tap action (such as navigating) can be triggered at the same time. See gif:
Code example
CupertinoContextMenu(
child: GestureDetector(
onTap: () => Navigator.of(context).pushNamed('/photo'),
child: Image(image: imageProvider),
),
),
Underlying issue
void _onTap() {
if (_openController.isAnimating && _openController.value < 0.5) {
_openController.reverse();
}
}
If the controller already is opened more than 50%, it doesn't close. Since there's no way of detecting this from the other gesture detector, both are triggered.
Proposed solution
Always reverse the context menu onTap.
k00na, albinekb, LinusU, acanturgut, TahaTesser and 4 more
Metadata
Metadata
Assignees
Labels
f: cupertinoflutter/packages/flutter/cupertino repositoryflutter/packages/flutter/cupertino repositoryf: gesturesflutter/packages/flutter/gestures repository.flutter/packages/flutter/gestures repository.frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
