管理中心

您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明。

指南与API参考API参考应用框架ArkUI(方舟UI框架)ArkTS组件菜单ContextMenu

ContextMenu

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

在页面范围内关闭通过bindContextMenu属性绑定的菜单。

说明

从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

ContextMenu.close(deprecated)

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

static close()

在页面范围内关闭通过bindContextMenu绑定的菜单。常用于页面跳转、拖拽开始等需要主动关闭已显示菜单的交互场景。

说明

从API version 8开始支持。从API version 18开始废弃,建议使用UIContext中的getContextMenuController获取ContextMenuController实例,再通过此实例调用替代方法close。

两者功能相同,区别在于:ContextMenu.close()是静态方法,在多窗口场景下可能无法明确指定要关闭哪个窗口的菜单;而通过UIContext获取的ContextMenuController实例调用close()可以关联到具体的UIContext,从而明确指定操作的UI上下文,建议在API version 12及以上版本中使用UIContext方式。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

示例

该示例演示ContextMenu.close的使用方法,在拖拽开始时关闭通过bindContextMenu绑定的菜单。

说明

推荐通过使用UIContext中的getContextMenuController来明确UI的执行上下文。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. @Builder MenuBuilder() {
  6. Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
  7. Button('ContextMenu1')
  8. Divider().strokeWidth(2).margin(5).color(Color.Black)
  9. Button('ContextMenu2')
  10. Divider().strokeWidth(2).margin(5).color(Color.Black)
  11. Button('ContextMenu3')
  12. }
  13. .width(200)
  14. .height(160)
  15. }
  16. build() {
  17. Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
  18. Column() {
  19. Text('Long press to show ContextMenu')
  20. .fontSize(20)
  21. .width('100%')
  22. .height(500)
  23. .backgroundColor(0xAFEEEE)
  24. .textAlign(TextAlign.Center)
  25. }
  26. .bindContextMenu(this.MenuBuilder, ResponseType.LongPress)
  27. .onDragStart(() => {
  28. // 拖拽时关闭菜单
  29. ContextMenu.close() // 建议使用 this.getUIContext().getContextMenuController().close()
  30. })
  31. }
  32. .width('100%')
  33. .height('100%')
  34. }
  35. }