initial
This commit is contained in:
commit
74ae93a96e
1 changed files with 94691 additions and 0 deletions
62
_resources/rightclick_simulation.dart
Normal file
62
_resources/rightclick_simulation.dart
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
As I mentioned before, directly detecting right-clicks in Flutter isn't natively supported due to its touch-centric nature. However, there are ways to achieve similar functionality, especially on desktop platforms.
|
||||
|
||||
Let's explore the options with more detail and code examples:
|
||||
|
||||
1. Long Press (Cross-Platform, but not true right-click):
|
||||
|
||||
This is the most straightforward and cross-platform approach. It uses a long press gesture to trigger an action that mimics a right-click.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class RightClickSimulation extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onLongPress: () {
|
||||
_showContextMenu(context);
|
||||
},
|
||||
child: Container(
|
||||
width: 200,
|
||||
height: 100,
|
||||
color: Colors.lightBlue,
|
||||
child: Center(
|
||||
child: Text('Long Press for Context Menu'),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _showContextMenu(BuildContext context) async {
|
||||
final RenderBox renderBox = context.findRenderObject() as RenderBox;
|
||||
final position = renderBox.localToGlobal(Offset.zero);
|
||||
|
||||
final selectedItem = await showMenu(
|
||||
context: context,
|
||||
position: RelativeRect.fromLTRB(
|
||||
position.dx,
|
||||
position.dy + renderBox.size.height,
|
||||
position.dx + renderBox.size.width,
|
||||
position.dy + 2 * renderBox.size.height,
|
||||
),
|
||||
items: [
|
||||
PopupMenuItem(
|
||||
value: 'option1',
|
||||
child: Text('Option 1'),
|
||||
),
|
||||
PopupMenuItem(
|
||||
value: 'option2',
|
||||
child: Text('Option 2'),
|
||||
),
|
||||
PopupMenuItem(
|
||||
value: 'option3',
|
||||
child: Text('Option 3'),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
if (selectedItem != null) {
|
||||
print('Selected: $selectedItem');
|
||||
// Handle the selected option here
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue