Flutter 鼠标右键

import 'package:universal_html/html.dart';


void main() {

​	// Disable the default browser behavior for right clicking 
    // 屏蔽浏览器默认的右键点击事件
 	window.document.onContextMenu.listen((evt) => evt.preventDefault());

​	runApp(MyApp());
}

//具体使用
Container(
child:Listener(
            onPointerDown: _onPointerDown,
            child: Container(
              decoration: BoxDecoration(
                  border: Border.all(color: editWidgetItem == element ? 
              Colors.blueAccent : Colors.transparent)),
              padding: const EdgeInsets.all(2),
              child: buildDetailsWidget(element),
            ),
          ),
),


  /// Callback when mouse clicked on `Listener` wrapped widget.
  Future<void> _onPointerDown(PointerDownEvent event) async {
    // Check if right mouse button clicked
    if (event.kind == PointerDeviceKind.mouse && event.buttons == kSecondaryMouseButton) {
      final overlay = Overlay.of(context).context.findRenderObject() as RenderBox;
      final menuItem = await showMenu<int>(
          context: context,
          items: [
            PopupMenuItem(child: Text('Copy'), value: 1),
            PopupMenuItem(child: Text('Cut'), value: 2),
          ],
          position: RelativeRect.fromSize(event.position & Size(48.0, 48.0), overlay.size));
      // Check if menu item clicked
      switch (menuItem) {
        case 1:
          ScaffoldMessenger.of(context).showSnackBar(SnackBar(
            content: Text('Copy clicket'),
            behavior: SnackBarBehavior.floating,
          ));
          break;
        case 2:
          ScaffoldMessenger.of(context)
              .showSnackBar(SnackBar(content: Text('Cut clicked'), behavior: SnackBarBehavior.floating));
          break;
        default:
      }
    }
  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值