Flutter 我正在尝试在弹出菜单中实现onTap()功能,但无法实现 当PopMenuItem中的某个项出现时,我希望它执行某些特定任务 我尝试了实现,但它没有做任何事情。我尝试了实现onTap()函数,但它给了我一个错误作为常量 这是密码 导入“包装:颤振/材料.省道”; 导入“package:ssrpa/ui/forget_password.dart”; 导入“包:ssrpa/admin/admin_page2.dart”; 类PopUpMenu扩展了无状态小部件{ 可重复性; 无效或不可禁用; 无效删除; 弹出菜单({this.oneable,this.onDisable,this.onDelete}); void showMenuSelection(字符串值){ 开关(值){ 案例“启用”: 合一(); 打破 案例“禁用”: onDisable(); 打破 案例“删除”: onDelete(); 打破 //其他菜单选项的其他案例 } } @凌驾 小部件构建(构建上下文){ 返回弹出菜单按钮( 填充:EdgeInsets.zero, 图标:图标(更多图标), onSelected:showMenuSelection, itemBuilder:(构建上下文)=>[ 常数PopupMenuItem( 值:“启用用户”, 孩子:ListTile( 标题:文本(“启用用户”), 常数PopupMenuItem( 值:“禁用用户”, 孩子:ListTile( 标题:文本(“禁用用户”), 常数PopupMenuItem( 值:“删除用户”, 孩子:ListTile( 标题:文本(“删除用户”)) ] ); } } 当从PopMenuItem中选择一个菜单时,我可以调用在其他程序中定义的函数吗 屏幕截图如下所示。

Flutter 我正在尝试在弹出菜单中实现onTap()功能,但无法实现 当PopMenuItem中的某个项出现时,我希望它执行某些特定任务 我尝试了实现,但它没有做任何事情。我尝试了实现onTap()函数,但它给了我一个错误作为常量 这是密码 导入“包装:颤振/材料.省道”; 导入“package:ssrpa/ui/forget_password.dart”; 导入“包:ssrpa/admin/admin_page2.dart”; 类PopUpMenu扩展了无状态小部件{ 可重复性; 无效或不可禁用; 无效删除; 弹出菜单({this.oneable,this.onDisable,this.onDelete}); void showMenuSelection(字符串值){ 开关(值){ 案例“启用”: 合一(); 打破 案例“禁用”: onDisable(); 打破 案例“删除”: onDelete(); 打破 //其他菜单选项的其他案例 } } @凌驾 小部件构建(构建上下文){ 返回弹出菜单按钮( 填充:EdgeInsets.zero, 图标:图标(更多图标), onSelected:showMenuSelection, itemBuilder:(构建上下文)=>[ 常数PopupMenuItem( 值:“启用用户”, 孩子:ListTile( 标题:文本(“启用用户”), 常数PopupMenuItem( 值:“禁用用户”, 孩子:ListTile( 标题:文本(“禁用用户”), 常数PopupMenuItem( 值:“删除用户”, 孩子:ListTile( 标题:文本(“删除用户”)) ] ); } } 当从PopMenuItem中选择一个菜单时,我可以调用在其他程序中定义的函数吗 屏幕截图如下所示。,flutter,dart,popup,Flutter,Dart,Popup,您在弹出菜单项中发送的值字符串与您的开关盒不匹配 import 'package:flutter/material.dart'; import 'package:ssrpa/ui/forgot_password.dart'; import 'package:ssrpa/admin/admin_page2.dart'; class PopUpMenu extends StatelessWidget { VoidCallback onEnable; VoidCallback onDisab

您在弹出菜单项中发送的值字符串与您的开关盒不匹配

import 'package:flutter/material.dart';
import 'package:ssrpa/ui/forgot_password.dart';
import 'package:ssrpa/admin/admin_page2.dart';

class PopUpMenu extends StatelessWidget {
  VoidCallback onEnable;
  VoidCallback onDisable;
  VoidCallback onDelete;

  PopUpMenu({this.onEnable, this.onDisable, this.onDelete});

  void showMenuSelection(String value) {
    switch (value) {
      case 'Enable User':
        onEnable();
        break;
      case 'Disable User':
        onDisable();
        break;
      case 'Delete User':
        onDelete();
        break;
    // Other cases for other menu options
    }
  }

  @override
  Widget build(BuildContext context) {
    return PopupMenuButton<String>(
      padding: EdgeInsets.zero,
      icon: Icon(Icons.more_vert),
      onSelected: showMenuSelection,
      itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
        const PopupMenuItem<String>(
            value: 'Enable User',
            child: ListTile(
                title: Text('Enable User'))),
        const PopupMenuItem<String>(
            value: 'Disable User',
            child: ListTile(
                title: Text('Disable User'))),
        const PopupMenuItem<String>(
            value: 'Delete User',
            child: ListTile(
                title: Text('Delete User')))

      ]
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“package:ssrpa/ui/forget_password.dart”;
导入“包:ssrpa/admin/admin_page2.dart”;
类PopUpMenu扩展了无状态小部件{
可重复性;
无效或不可禁用;
无效删除;
弹出菜单({this.oneable,this.onDisable,this.onDelete});
void showMenuSelection(字符串值){
开关(值){
案例“启用用户”:
合一();
打破
案例“禁用用户”:
onDisable();
打破
案例“删除用户”:
onDelete();
打破
//其他菜单选项的其他案例
}
}
@凌驾
小部件构建(构建上下文){
返回弹出菜单按钮(
填充:EdgeInsets.zero,
图标:图标(更多图标),
onSelected:showMenuSelection,
itemBuilder:(构建上下文)=>[
常数PopupMenuItem(
值:“启用用户”,
孩子:ListTile(
标题:文本(“启用用户”),
常数PopupMenuItem(
值:“禁用用户”,
孩子:ListTile(
标题:文本(“禁用用户”),
常数PopupMenuItem(
值:“删除用户”,
孩子:ListTile(
标题:文本(“删除用户”))
]
);
}
}

您在弹出菜单项中发送的值字符串与您的开关盒不匹配

import 'package:flutter/material.dart';
import 'package:ssrpa/ui/forgot_password.dart';
import 'package:ssrpa/admin/admin_page2.dart';

class PopUpMenu extends StatelessWidget {
  VoidCallback onEnable;
  VoidCallback onDisable;
  VoidCallback onDelete;

  PopUpMenu({this.onEnable, this.onDisable, this.onDelete});

  void showMenuSelection(String value) {
    switch (value) {
      case 'Enable User':
        onEnable();
        break;
      case 'Disable User':
        onDisable();
        break;
      case 'Delete User':
        onDelete();
        break;
    // Other cases for other menu options
    }
  }

  @override
  Widget build(BuildContext context) {
    return PopupMenuButton<String>(
      padding: EdgeInsets.zero,
      icon: Icon(Icons.more_vert),
      onSelected: showMenuSelection,
      itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
        const PopupMenuItem<String>(
            value: 'Enable User',
            child: ListTile(
                title: Text('Enable User'))),
        const PopupMenuItem<String>(
            value: 'Disable User',
            child: ListTile(
                title: Text('Disable User'))),
        const PopupMenuItem<String>(
            value: 'Delete User',
            child: ListTile(
                title: Text('Delete User')))

      ]
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“package:ssrpa/ui/forget_password.dart”;
导入“包:ssrpa/admin/admin_page2.dart”;
类PopUpMenu扩展了无状态小部件{
可重复性;
无效或不可禁用;
无效删除;
弹出菜单({this.oneable,this.onDisable,this.onDelete});
void showMenuSelection(字符串值){
开关(值){
案例“启用用户”:
合一();
打破
案例“禁用用户”:
onDisable();
打破
案例“删除用户”:
onDelete();
打破
//其他菜单选项的其他案例
}
}
@凌驾
小部件构建(构建上下文){
返回弹出菜单按钮(
填充:EdgeInsets.zero,
图标:图标(更多图标),
onSelected:showMenuSelection,
itemBuilder:(构建上下文)=>[
常数PopupMenuItem(
值:“启用用户”,
孩子:ListTile(
标题:文本(“启用用户”),
常数PopupMenuItem(
值:“禁用用户”,
孩子:ListTile(
标题:文本(“禁用用户”),
常数PopupMenuItem(
值:“删除用户”,
孩子:ListTile(
标题:文本(“删除用户”))
]
);
}
}