为什么弹出菜单按钮不能正常工作?
Why isn't popup menu button working in flutter?
我正在尝试使用 PopupMenuButton
但它抛出了错误消息:
"A value of type 'Null' can't be assigned to a parameter of type 'List<PopupMenuEntry<Text>> Function(BuildContext)' in a const constructor."
我该如何解决这个问题?
这是我的代码:
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: const IconButton(
icon: Icon(Icons.menu),
onPressed: null,
tooltip: 'Navigation menu',
),
title: const Text('FlashyCardy'),
actions: const [
IconButton(
icon: Icon(Icons.search),
tooltip: 'Search',
onPressed: null,
),
IconButton(
onPressed: null,
tooltip: 'Add task',
icon: Icon(Icons.add_task),
),
PopupMenuButton<Text>(
itemBuilder: (context) => <PopupMenuEntry<Text>>[
const PopupMenuItem<Text>(
child: Text('Working a lot harder'),
),
];
),
],
),
body: null,
);
}
}
您使用的 const
不正确,请在 const
之后 创建列表后再创建小部件。使用 const
的方式还有其他问题,我已经修改了您的代码以创建一个完整的工作示例:
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: const IconButton(
icon: Icon(Icons.menu),
onPressed: null,
tooltip: 'Navigation menu',
),
title: const Text('FlashyCardy'),
actions: [
const IconButton(
icon: Icon(Icons.search),
tooltip: 'Search',
onPressed: null,
),
const IconButton(
onPressed: null,
tooltip: 'Add task',
icon: Icon(Icons.add_task),
),
PopupMenuButton<Text>(
itemBuilder: (context) => <PopupMenuEntry<Text>>[
const PopupMenuItem<Text>(
child: Text('Working a lot harder'),
),
]),
],
),
body: null,
);
}
}
我正在尝试使用 PopupMenuButton
但它抛出了错误消息:
"A value of type 'Null' can't be assigned to a parameter of type 'List<PopupMenuEntry<Text>> Function(BuildContext)' in a const constructor."
我该如何解决这个问题?
这是我的代码:
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: const IconButton(
icon: Icon(Icons.menu),
onPressed: null,
tooltip: 'Navigation menu',
),
title: const Text('FlashyCardy'),
actions: const [
IconButton(
icon: Icon(Icons.search),
tooltip: 'Search',
onPressed: null,
),
IconButton(
onPressed: null,
tooltip: 'Add task',
icon: Icon(Icons.add_task),
),
PopupMenuButton<Text>(
itemBuilder: (context) => <PopupMenuEntry<Text>>[
const PopupMenuItem<Text>(
child: Text('Working a lot harder'),
),
];
),
],
),
body: null,
);
}
}
您使用的 const
不正确,请在 const
之后 创建列表后再创建小部件。使用 const
的方式还有其他问题,我已经修改了您的代码以创建一个完整的工作示例:
class MyHomePage extends StatelessWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: const IconButton(
icon: Icon(Icons.menu),
onPressed: null,
tooltip: 'Navigation menu',
),
title: const Text('FlashyCardy'),
actions: [
const IconButton(
icon: Icon(Icons.search),
tooltip: 'Search',
onPressed: null,
),
const IconButton(
onPressed: null,
tooltip: 'Add task',
icon: Icon(Icons.add_task),
),
PopupMenuButton<Text>(
itemBuilder: (context) => <PopupMenuEntry<Text>>[
const PopupMenuItem<Text>(
child: Text('Working a lot harder'),
),
]),
],
),
body: null,
);
}
}