选择项目后如何不关闭 PopUpMenuButton?

Omi*_*Omi 4 overriding popupmenubutton dart-pub flutter flutter-layout

我正在使用 flutter PopUpMenuButton。我想要的是,当我选择菜单上的任何项目时,不应关闭弹出窗口,而是让我从弹出窗口中选择多个值。文档说您可以覆盖 handleTap 属性,但我不清楚该怎么做那?这是有记录的

 ///The [handleTap] method can be overridden to adjust exactly what happens when
/// the item is tapped. By default, it uses [Navigator.pop] to return the
/// [PopupMenuItem.value] from the menu route.

    void handleTap() {
    Navigator.pop<T>(context, widget.value);
  }
Run Code Online (Sandbox Code Playgroud)

iDe*_*ode 10

创建一个自定义类,例如PopupItem,它扩展PopupMenuItem并重写PopupMenuItemState.handleTap方法。

class PopupItem extends PopupMenuItem {
  const PopupItem({
    required Widget child,
    Key? key,
  }) : super(key: key, child: child);

  @override
  _PopupItemState createState() => _PopupItemState();
}

class _PopupItemState extends PopupMenuItemState {
  @override
  void handleTap() {}
}
Run Code Online (Sandbox Code Playgroud)

您现在可以像这样使用它:

PopupMenuButton(
  itemBuilder: (_) {
    return [
      PopupItem(child: ...),
    ];
  },
)
Run Code Online (Sandbox Code Playgroud)