为什么弹出菜单按钮不能正常工作?

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,
    );
  }
}