如何在颤动中制作带有弹出菜单的浮动操作按钮?

Posted

技术标签:

【中文标题】如何在颤动中制作带有弹出菜单的浮动操作按钮?【英文标题】:How to make a Floating Action Button with a popup menu in flutter? 【发布时间】:2020-11-09 20:07:28 【问题描述】:

我需要制作一个弹出菜单类型的按钮。 有什么办法可以做一个弹出菜单浮动操作按钮,这是我的desired view

【问题讨论】:

【参考方案1】:

您可以使用颤振快速拨号包。 访问-https://pub.dev/packages/flutter_speed_dial。 这是一个 youtube 视频 - https://www.youtube.com/watch?v=1FmATI4rOBc

【讨论】:

【参考方案2】:

您的答案是PopupMenuItem class,这将帮助您获得理想的结果。

请注意:我刚刚演示了如何使用,以及使用什么代码,您可以获得结果。无论如何,您都可以使用它,并获得您想要的结果。

用于创建弹出菜单项的代码片段

PopupMenuButton<Choice>(
    itemBuilder: (context) => [
        PopupMenuItem()
    ],
    icon: Icon(),
    offset: Offset()
)

参考代码

class _MyHomePageState extends State<MyHomePage> 
  
  Widget _offsetPopup() => PopupMenuButton<int>(
    itemBuilder: (context) => [
          PopupMenuItem(
            value: 1,
            child: Text(
              "Flutter Open",
              style: TextStyle(
                  color: Colors.black, fontWeight: FontWeight.w700),
            ),
          ),
          PopupMenuItem(
            value: 2,
            child: Text(
              "Flutter Tutorial",
              style: TextStyle(
                  color: Colors.black, fontWeight: FontWeight.w700),
            ),
          ),
        ],
    icon: Container(
      height: double.infinity,
      width: double.infinity,
      decoration: ShapeDecoration(
        color: Colors.blue,
        shape: StadiumBorder(
          side: BorderSide(color: Colors.white, width: 2),
        )
      ),
      //child: Icon(Icons.menu, color: Colors.white), <-- You can give your icon here
    )
  );

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        padding: EdgeInsets.only(right: 10.0, bottom: 10.0),
        child: Align(
          alignment: Alignment.bottomRight,
          child: Container(
            height: 80.0,
            width: 80.0,
            child: _offsetPopup()
          )
        )
      )
    );
  

上面会给你这个结果:

专业提示

您可以使用Offset() 来决定 PopupMenuItems 的位置

【讨论】:

乐于帮助@AshokRout :)

以上是关于如何在颤动中制作带有弹出菜单的浮动操作按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中允许浮动通知和锁定屏幕通知编程

在 Kivy 中制作(继续)选项屏幕

帮助弹出菜单

如何在颤动的任何屏幕上显示弹出消息?

在可扩展浮动操作按钮中,在颤动中未检测到子小部件中的手势

可扩展的浮动操作按钮(使用堆栈)在颤动中不起作用