我正在尝试在 PopUp Menu 中实现 onTap() 函数,但我无法这样做
I am trying to implement a onTap() fucntion in PopUpMenu but I am unable to do so
- 当我希望 PopMenuItem 中的项目之一执行某些特定任务时。
- 我尝试了实现,但它没有做任何事情我尝试实现 onTap() 函数,但它给我提供了所需的常量错误。
- 这是代码
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':
onEnable();
break;
case 'Disable':
onDisable();
break;
case 'Delete':
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')))
]
);
}
}
- 当从 PopMenuItem 中选择菜单之一时,我可以调用在其他程序中定义的函数吗?
- 截图如下。
您在弹出菜单项中发送的值字符串与您的 switch case 不匹配
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')))
]
);
}
}
- 当我希望 PopMenuItem 中的项目之一执行某些特定任务时。
- 我尝试了实现,但它没有做任何事情我尝试实现 onTap() 函数,但它给我提供了所需的常量错误。
- 这是代码
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':
onEnable();
break;
case 'Disable':
onDisable();
break;
case 'Delete':
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')))
]
);
}
}
- 当从 PopMenuItem 中选择菜单之一时,我可以调用在其他程序中定义的函数吗?
- 截图如下。
您在弹出菜单项中发送的值字符串与您的 switch case 不匹配
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')))
]
);
}
}