颤振下拉 Container/Widget

Flutter Dropdown Container/Widget

我花了几个小时在谷歌上搜索一些应该非常简单的东西,但在互联网上没有发现任何类似的东西。实际上,我想做一个下拉菜单,这样当点击一个按钮时,我就有一个下拉菜单。 但是,我希望这个下拉菜单是一个项目列表。我希望下拉菜单能够接受一个子窗口小部件,类似于 showDialog 函数,我可以将我想要的内容传递给子窗口小部件。

例如,我希望将下拉菜单的定位与对话框功能合并,以不仅呈现自以为是的列表。

有人知道如何完成这个吗?

您可以使用 flutter_portal。我用这个包来构建多种类型的下拉菜单。

我发现的另一种方法是使用 showGeneralDialog 函数并自定义位置。

你可以做的是复制 PopupMenuDivider:

的实现
class MyEntry extends PopupMenuEntry<Never> {
  const MyEntry();
  
  @override
  double get height => kMinInteractiveDimension;

  @override
  bool represents(void value) => false;

  @override
  State<MyEntry> createState() => _MyEntryState();
}

class _MyEntryState extends State<MyEntry> {
  @override
  Widget build(BuildContext context) {
    return MyWidget();
  }

然后你可以在 PopupMenuButton:

中使用它
class MyButton extends StatelessWidget {
  const MyButton();
  
  @override
  Widget build(BuildContext context) {
    return PopupMenuButton(
      itemBuilder: (context) {
        return [
          const MyEntry();
        ];
      },
      onSeleted: (_) {},
      child: MyChild(),
    );
  }
}