DaffyMenu 扩展
DaffyMenu 是一个免费的非可视扩展,用于创建弹出式菜单。该扩展为组件添加了弹出式菜单功能,支持多种菜单选项和自定义配置。
包名:com.gordonlu.daffymenu
版本:1
发布日期:2022年3月31日
下载链接
扩展文件:
demo:
功能概述
扩展特性
- 弹出式菜单:为任何组件添加右键菜单功能
- 自定义选项:支持添加多个菜单项
- 事件响应:处理菜单项点击事件
- 菜单样式:提供默认和可自定义的菜单外观
- 非可视组件:不会占用界面空间
- 组件友好:可绑定到任意组件
截图
Logo 和界面

应用示例


功能展示




函数
- ShowMenu 显示菜单(组件,菜单项列表)
- 显示绑定到指定组件的弹出菜单。
- 组件:组件类型,要绑定菜单的组件
- 菜单项列表:列表类型,菜单项文本列表
- AddMenuItem 添加菜单项(组件,菜单项文本)
- 为指定组件添加一个菜单项。
- 组件:组件类型,目标组件
- 菜单项文本:文本类型,菜单项显示文本
- ClearMenuItems 清除菜单项(组件)
- 清除指定组件的所有菜单项。
- 组件:组件类型,目标组件
- SetMenuTitle 设置菜单标题(组件,标题)
- 设置弹出菜单的标题。
- 组件:组件类型,目标组件
- 标题:文本类型,菜单标题文本
- SetMenuIcon 设置菜单图标(组件,图标路径)
- 设置菜单项的图标。
- 组件:组件类型,目标组件
- 图标路径:文本类型,图标文件路径
- SetItemIcon 设置项目图标(菜单项索引,图标路径)
- 设置指定菜单项的图标。
- 菜单项索引:数字类型,菜单项的索引位置
- 图标路径:文本类型,图标文件路径
- SetTextColor 设置文本颜色(组件,颜色)
- 设置菜单项的文本颜色。
- 组件:组件类型,目标组件
- 颜色:数字类型,颜色值
- SetBackgroundColor 设置背景颜色(组件,颜色)
- 设置菜单的背景颜色。
- 组件:组件类型,目标组件
- 颜色:数字类型,背景颜色值
- SetMenuHeight 设置菜单高度(组件,高度)
- 设置弹出菜单的高度。
- 组件:组件类型,目标组件
- 高度:数字类型,菜单高度(像素)
- SetMenuWidth 设置菜单宽度(组件,宽度)
- 设置弹出菜单的宽度。
- 组件:组件类型,目标组件
- 宽度:数字类型,菜单宽度(像素)
- SetAnimationDuration 设置动画时长(组件,时长)
- 设置菜单弹出/隐藏的动画时长。
- 组件:组件类型,目标组件
- 时长:数字类型,动画时长(毫秒)
- DisableMenu 禁用菜单(组件)
- 禁用指定组件的菜单功能。
- 组件:组件类型,目标组件
- EnableMenu 启用菜单(组件)
- 启用指定组件的菜单功能。
- 组件:组件类型,目标组件
- HideMenu 隐藏菜单(组件)
- 隐藏当前显示的菜单。
- 组件:组件类型,目标组件
事件
- MenuItemClicked 菜单项点击(组件,菜单项索引,菜单项文本)
- 当用户点击菜单项时触发。
- 组件:组件类型,触发事件的组件
- 菜单项索引:数字类型,被点击的菜单项索引
- 菜单项文本:文本类型,被点击的菜单项文本
- MenuShown 菜单显示(组件)
- 当弹出菜单显示时触发。
- 组件:组件类型,菜单所属的组件
- MenuHidden 菜单隐藏(组件)
- 当弹出菜单隐藏时触发。
- 组件:组件类型,菜单所属的组件
属性
- IsMenuVisible 菜单可见(组件) {:.boolean .read-only}
- 返回指定组件的菜单是否当前可见。
- 组件:组件类型,要检查的组件
- 返回值:布尔类型,菜单是否可见
- MenuItemCount 菜单项数量(组件) {:.number .read-only}
- 返回指定组件的菜单项数量。
- 组件:组件类型,要检查的组件
- 返回值:数字类型,菜单项总数
- MenuTitle 菜单标题(组件) {:.text .read-only}
- 返回指定组件的菜单标题。
- 组件:组件类型,要检查的组件
- 返回值:文本类型,菜单标题文本
使用示例
基础菜单设置
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
处理菜单点击事件
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
为多个组件设置菜单
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
菜单样式自定义
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
菜单状态管理
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
动态菜单管理
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
条件菜单显示
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
应用程序主菜单
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
菜单事件处理
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
高级应用
上下文相关菜单
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
图标菜单设置
when Screen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["复制", "粘贴"], Button1)
}
when DaffyMenu1.ItemSelected(id, item) {
Label1.Text = item
}
注意事项
- 非可视组件:DaffyMenu 是非可视组件,不会在应用界面中显示
- 组件绑定:必须将菜单绑定到具体的组件才能使用
- 菜单冲突:避免为同一组件绑定多个菜单
- 事件处理:确保正确处理菜单点击事件
- 性能考虑:菜单项数量不宜过多
- 图标支持:支持菜单项图标,需要提供图标路径
- 动画效果:可配置菜单弹出和隐藏的动画时长
- 颜色配置:支持自定义菜单的文本和背景颜色
应用场景
- 文本编辑器:复制、粘贴、剪切、全选等功能
- 文件管理器:新建、打开、保存、删除文件操作
- 应用程序:设置、关于、退出等系统操作
- 媒体播放器:播放控制、音量调节、全屏等功能
- 图片查看器:图片操作、缩放、旋转、保存等功能
- 社交应用:分享、收藏、举报、设置等功能
技术规格
- 扩展类型:非可视扩展
- 组件要求:需要绑定到具体组件
- 菜单项限制:建议控制在合理数量内
- 动画支持:支持弹出和隐藏动画
- 颜色支持:支持ARGB颜色格式
- 图标支持:支持本地图标文件
- 最低系统:基于发布时间推测兼容性良好
版权信息
- 原作者:Gordon Lu (gordonlu310)
- 原始网址:https://community.appinventor.mit.edu/t/free-daffymenu-popup-menus-for-your-components/54771/12
- 发布日期:2022年3月31日
- 许可协议:免费开源扩展
- 致谢:感谢 AI2 Popup Menu 提供的灵感
文档最后更新:2025年11月20日
扫码添加客服咨询