使用IconButton时未显示小部件的问题

时间:2020-07-23 12:49:37

标签: flutter

我遇到一个问题,当我单击时,我的PopupMenuButton没有显示,我尝试了许多解决方案,但没有成功。 我也在谷歌搜索,但没有结果。 恐怕我遇到错误了。

这是我的代码

enum MyMenuEntries { edit, delete }

                                  IconButton(
                                      icon: Icon(Icons.more_vert),
                                      onPressed: () =>
                                          PopupMenuButton<MyMenuEntries>(
                                            onSelected:
                                                (MyMenuEntries entry) {},
                                            itemBuilder:
                                                (BuildContext context) => [
                                              PopupMenuItem<MyMenuEntries>(
                                                value: MyMenuEntries.edit,
                                                child: ListTile(
                                                    leading: Icon(Icons.edit),
                                                    title: Text("Edit")),
                                              ),
                                              PopupMenuItem<MyMenuEntries>(
                                                value: MyMenuEntries.delete,
                                                child: ListTile(
                                                    leading: Icon(Icons.delete),
                                                    title: Text("Delete")),
                                              ),
                                            ],
                                          ))
             

请任何答案可以帮助我。 谢谢!

1 个答案:

答案 0 :(得分:0)

可以使用PopUpMenuButton而不是使用IconButton,并向其icon属性提供图标。它将自动显示PopUpMenuButton个项目。

因此,您应该删除IconButton,您的代码将为:

PopupMenuButton<MyMenuEntries>(
    onSelected:
    (MyMenuEntries entry) {},
    itemBuilder:
    (BuildContext context) => [
        PopupMenuItem<MyMenuEntries>(
            value: MyMenuEntries.edit,
            child: ListTile(
            leading: Icon(Icons.edit),
            title: Text("Edit")),
        ),
        PopupMenuItem<MyMenuEntries>(
            value: MyMenuEntries.delete,
            child: ListTile(
            leading: Icon(Icons.delete),
            title: Text("Delete")),
        ),
    ], 
    icon: Icon(Icons.more_vert),                                         
)