Radial Menu, Circular Menu, and Pie Menu¶
In practice these terms are usually used for the same interaction family: - Actions are laid out around a center point - Users select by directional movement rather than scanning a long list
The naming varies by community, but the core model is direction-first selection.
What RadialMenu Supports¶
- Radial fan behavior (
LongPress,positionAwareoptions) - Pie-style directional behavior (
SecondaryClick,KeyboardHold) - Corner fallback (
enableEdgeHugLayout) for constrained space
Trigger Patterns by Platform¶
Android¶
- Default: long press (
Auto -> LongPress(positionAware = true)) - Optional: explicit long press with or without position-aware angle adjustment
Desktop¶
- Default: right-click (
Auto -> SecondaryClick(positionAware = false)) - Optional: keyboard hold (
KeyboardHold(Key.Q))
For keyboard hold: - Menu appears at center - Selection is angle-based pie-slice - Flick direction starts from cursor position at key-down - Selection commits on key release
Radial Menu vs Other UI Patterns¶
| Pattern | Trigger | Best for | Typical tradeoff |
|---|---|---|---|
| Radial/Pie menu | Directional gesture | Repeated quick actions | Requires directional learnability |
| Bottom sheet | Tap/swipe | Dense content/forms | Slower repeated action selection |
| Linear context menu | Tap/long press | Text-heavy action lists | More visual scanning |
| Single FAB action | Tap | One primary action | Limited action density |
Implementation Tip¶
If your users are mostly desktop: - Keep Auto or set SecondaryClick(positionAware = false) explicitly.
If your users are mostly touch: - Keep Auto or set LongPress(positionAware = true).