-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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.
Reactions are currently unavailable
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.
