首页
学习
活动
专区
圈层
工具
发布

Flutter | 超实用简单菜单弹出框 PopupMenuButton

相信在实际开发过程当中,肯定少不了这样的功能: ? 点击 AppBar 右上角的按钮,弹出一个菜单供用户选择。 幸运的是,Flutter 提供给我们了一个 Widget,直接就能实现如上的效果。...PopupMenuButton 还是老规矩,先看官方的说明: Displays a menu when pressed and calls onSelected[1] when the menu is...If icon[5] is provided, then PopupMenuButton[6] behaves like an IconButton[7]....大致意思为: 当按下的时候显示一个菜单,选择了一个项目的时候会回调 onSelected,传递的值是所选菜单的值。 可以提供 child or icon ,但是不能同时提供。...总结 这样就完成了一个超级简单并且实用的菜单弹出框, 其实它的实现逻辑和 DropdownButton 差不多,都是使用了 PopupRoute, 有对这方面感兴趣的同学,可以查看我以前写的文章:Flutter

6.8K30

【Flutter 实战】菜单(Menu)功能

PopupMenuButton 使用PopupMenuButton,点击时弹出菜单,用法如下: PopupMenuButton( itemBuilder: (context) {...设置其初始值: PopupMenuButton( initialValue: '语文', ... ) 设置初始值后,打开菜单后,设置的值将会高亮,效果如下: ?...设置其阴影值、内边距和弹出菜单的背景颜色: PopupMenuButton( elevation: 5, padding: EdgeInsets.all(5), color:...menu有一个非常重要的参数Offset,这个参数是控制菜单弹出的位置,通常情况下,菜单在当前按钮下面展示: PopupMenuButton( offset: Offset(0,100...属性和PopupMenuButton基本一样,但使用showMenu需要我们指定位置,所以一般情况下,我们不会直接使用showMenu,而是使用PopupMenuButton,免去了计算位置的过程。

2.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter 调试工具篇 | 壹 - 使用 Flutter Inspector 分析界面

    前言 很多朋友可能在布局过程中、或者组件使用过程中,会遇到诸如颜色、尺寸、约束、定位等问题,可能会让你抓耳挠腮。...如下所示,左下角的菜单弹框,在 useMaterial3 下呈紫色,而 PopupMenuButton 并没有直接修改弹出框背景色的配置项。...接下来将通过布局分析器,来解决如下几个问题: PopupMenuButton 弹出菜单,其背景是何时、如何着色的。 如何修改弹出菜单的背景色。 弹出菜单在界面树形结构中,处于哪个层级。...---- 如下所示,往上翻一下,就可以很容易定位到颜色的来源,PopupMenuButton 弹出框的视图,由源码内部的 _PopupMenu 组件所构建,其中背景色由 Material 组件所设置。...,都可以通过 Flutter Inspector 来分析、定位问题所在,再查看相关的源码来解决。

    2.8K20

    你知道吗,Flutter内置了10多种Button控件

    PopupMenuButton是一个菜单选中控件,用法如下: PopupMenuButton( itemBuilder: (context) { return ( initialValue: '语文', ... ) 设置初始值后,打开菜单后,设置的值将会高亮,效果如下: [1240] 获取用户选择了某一项的值,或者用户未选中,代码如下:...', ... ) 效果如下: [1240] 设置其阴影值、内边距和弹出菜单的背景颜色: PopupMenuButton( elevation: 5, padding: EdgeInsets.all...>( child: Text('学科'), ... ) child组件将会被InkWell包裹,点击弹出菜单,效果如下: [1240] 也可以设置其他图标: PopupMenuButton( icon: Icon(Icons.add), ... ) 效果如下: [1240] 设置弹出菜单边框: PopupMenuButton( shape: RoundedRectangleBorder

    3.2K00

    菜单的使用

    一、Windows菜单的基本知识: 1)顶级菜单:紧贴在标题栏下面的菜单称为顶级菜单,也可以叫做程序的主菜单; 2)弹出式菜单:一般在顶级菜单上都有很多菜单项,单击这些菜单项时会弹出一个下拉式的菜单项,...我们点击的这个菜单称为弹出式菜单 3)菜单项:每一个可选菜单项被赋予一个唯一的ID,当用户单击某个菜单项时Windows会将该菜单项的ID发送给父窗口,父窗口通过WM_COMMAND消息处理菜单的单击消息...,但是弹出式菜单没有ID,WM_COMMAND消息也不处理弹出式菜单的点击信息 4)菜单加速键:主要是多个键的组合,当同时按下这些键的时候相当于点击了菜单的某个菜单项 5)菜单项一般具有“可用”(Enabled...每一种菜单都有一个菜单句柄,包括弹出式菜单的菜单项,顶级菜单,弹出式菜单; 二、菜单的创建: Windows中菜单有两种方式,一种是通过资源的方式通过可视化或者编写rc文件来创建一个菜单资源,并在代码中显示的加载...rc文件之后有三种方法添加菜单: 通过在创建窗口类的时候在lpszMenuName项的后面添加一个用于标示菜单的字符串,若菜单使用的是ID号作为标示那么可以使用宏MAKEINTRESOURCE; 在函数

    1.8K40

    AWT的菜单组件

    https://www.captainbed.cn/f1 AWT的菜单组件是Java图形用户界面(GUI)中用于创建菜单结构的组件,包括菜单栏、菜单和菜单项等,提供用户交互的便捷方式。...在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定的功能,在AWT中,菜单相关组件的使用和之前学习的组件是一模一样的,只需要把菜单条、菜单、菜单项组合到一起...一、菜单组件的介绍 常见的菜单相关组件 菜单组件名称 功能 MenuBar 菜单条 , 菜单的容器 。 Menu 菜单组件 , 菜单项的容器 。...接下来,创建了一个菜单事件监听器(listener),用于处理菜单项的点击事件。在监听器中,根据点击的菜单项的动作命令(actionCommand),输出相应的信息,并在点击退出菜单项时退出程序。...执行程序时,会显示一个带有菜单的窗口,并可以在菜单中进行相应的操作。

    76910

    VC动态生成菜单菜单响应及加速键的使用

    VC动态生成菜单菜单响应及加速键的使用 一、使用环境     本文讲解的使用环境为MFC 的Visual Studio项目的单文档应用程序类型,字符集使用多字节字符集,对话框和多文档应用程序类型稍有不同这里不再讲解说明...二、读取XML树形结构菜单 本文的上一节已经详细讲解了使用pugixml读取XML树形结构菜单的内容,这里不再重复直接使用。    ...(1)在CMainFrame类的头文件MainFrm.h中添加树形结构菜单存储结构 public: //可点击菜单ID 名称 命令 是否使用加速键 typedef struct _CMDINFO { UINT...四、添加菜单响应 (1)在CMainFrame类的头文件 DECLARE_MESSAGE_MAP()宏上面添加菜单响应函数声明: afx_msg void OnMenuItem(UINT id); afx_msg...Studio项目的单文档应用程序的动态生成菜单菜单响应及加速键的使用就全部完成了,谢谢大家的支持:

    98010
    领券