往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)
菜单控制
为组件绑定弹出式菜单,弹出式菜单以垂直列表形式显示菜单项,可通过长按、点击或鼠标右键触发。
说明
从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
CustomBuilder里不支持再使用bindMenu、bindContextMenu弹出菜单。
弹出菜单的文本内容不支持长按选中。
当窗口大小发生变化时,菜单自动隐藏。
动效曲线使用弹簧曲线,在动效退出时,由于弹簧曲线的回弹震荡,菜单消失后有较长的拖尾,使得其他事件无法响应。
若组件是可拖动节点,绑定bindContextMenu未指定preview时,菜单弹出会浮起拖拽预览图且菜单选项和预览图不会发生避让。对此,开发者可根据使用场景设置preview或者将目标节点设置成不可拖动节点。
从API Version 12开始,菜单支持长按500ms弹出子菜单,支持按压态跟随手指移动。
仅支持使用Menu组件且子组件包含MenuItem或MenuItemGroup的场景。
仅支持MenuPreviewMode为NONE的菜单。
bindMenu
bindMenu(content: Array<MenuElement> | CustomBuilder, options?: MenuOptions)
给组件绑定菜单,点击后弹出菜单。弹出菜单项支持图标+文本排列和自定义两种功能。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
content | Array<MenuElement> | CustomBuilder | 是 | 配置菜单项图标和文本的数组,或者自定义组件。 |
options | MenuOptions | 否 | 配置弹出菜单的参数。 |
bindMenu11+
bindMenu(isShow: boolean, content: Array<MenuElement> | CustomBuilder, options?: MenuOptions)
给组件绑定菜单,点击后弹出菜单。弹出菜单项支持图标+文本排列和自定义两种功能。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isShow11+ | boolean | 是 | 支持开发者通过状态变量控制显隐,默认值为false,menu弹窗必须等待页面全部构建才能展示,因此不能在页面构建中设置为true,否则会导致显示位置及形状错误,当前不支持双向绑定。 |
content | Array<MenuElement> | CustomBuilder | 是 | 配置菜单项图标和文本的数组,或者自定义组件。 |
options | MenuOptions | 否 | 配置弹出菜单的参数。 |
bindContextMenu8+
bindContextMenu(content: CustomBuilder, respon