📜  在 Flutter 中打开 popupbutton onclick - Dart (1)

📅  最后修改于: 2023-12-03 15:37:20.217000             🧑  作者: Mango

在 Flutter 中打开 PopupButton onclick - Dart

在 Flutter 中,PopupButton 是一个非常实用的小部件。它可以在点击时展示一个下拉菜单,用户可以从中选择一个选项。在本文中,我们将讨论如何在点击时打开 PopupButton。

创建 PopupButton

要创建 PopupButton,我们需要使用 PopupMenuButton 小部件。下面是一个简单的示例:

PopupMenuButton<String>(
  onSelected: (String value) {
    print("You selected: $value");
  },
  itemBuilder: (BuildContext context) {
    return [
      PopupMenuItem<String>(
        child: Text("Option 1"),
        value: "Option 1",
      ),
      PopupMenuItem<String>(
        child: Text("Option 2"),
        value: "Option 2",
      ),
      PopupMenuItem<String>(
        child: Text("Option 3"),
        value: "Option 3",
      ),
    ];
  },
)

在这个例子中,我们为 PopupMenuButton 指定了两个属性。onSelected 用于指定当用户选择一个选项时应该执行的函数,而 itemBuilder 返回一个列表,其中包含了所有可用的选项。

在点击时打开 PopupButton

要在点击时打开 PopupButton,我们需要将它包装在一个 GestureDetector 中,并监听 onTap 事件。在这个事件的处理函数中,我们可以调用 showMenu 函数来打开菜单。下面是一个例子:

GestureDetector(
  onTap: () {
    showMenu(
      context: context,
      position: RelativeRect.fromLTRB(0.0, 0.0, 0.0, 0.0),
      items: [
        PopupMenuItem<String>(
          child: Text("Option 1"),
          value: "Option 1",
        ),
        PopupMenuItem<String>(
          child: Text("Option 2"),
          value: "Option 2",
        ),
        PopupMenuItem<String>(
          child: Text("Option 3"),
          value: "Option 3",
        ),
      ],
    );
  },
  child: PopupMenuButton<String>(
    onSelected: (String value) {
      print("You selected: $value");
    },
    itemBuilder: (BuildContext context) {
      return [];
    },
  ),
)

在这个例子中,我们监听了 GestureDetectoronTap 事件,并在事件处理函数中调用了 showMenu 函数来打开菜单。我们还将原始的 PopupMenuButton 替换为一个空列表,并通过 PopupMenuButton 的其他属性来指定选项。

总结

在本文中,我们讨论了如何在 Flutter 中打开 PopupButton onclick。我们演示了如何创建一个 PopupButton,然后讲解了如何将它包装在一个 GestureDetector 中,并在点击时打开菜单。这将使我们能够创建更灵活、交互性更强的用户界面。