文章配图:弹出菜单的实现

页面预览

前言

弹出菜单(Menu/ContextMenu)是移动应用中的快捷操作入口——长按某个元素后弹出操作列表。HarmonyOS 通过 bindContextMenuMenu 组件实现弹出菜单。

本文以「猫猫大作战」的猫咪长按菜单为锚点,讲解弹出菜单的实现。

提示:本系列不讲 ArkTS 基础语法与环墋搭建,假设你已跟完第 1–99 篇。本篇是阶段三第 100 篇。

一、Menu 基本用法

1.1 bindContextMenu

Column() {
  Text('🐱 长按我')
}
.bindContextMenu(this.CatMenu(), true)  // true = 长按触发

1.2 菜单构建

@Builder
CatMenu() {
  Menu() {
    MenuItem({ content: '查看详情', onClick: () => {} })
    MenuItem({ content: '合并', onClick: () => {} })
    MenuItem({ content: '删除', onClick: () => {} })
  }
}

二、游戏中的应用

CatCard({ cat: item })
  .bindContextMenu(this.CatContextMenu(item), true)

@Builder
CatContextMenu(cat: Cat) {
  Menu() {
    MenuItem({ content: `🐱 ${CatConfig[cat.level].name}` })
    MenuItem({ content: '查看详情', onClick: () => this.showDetail(cat) })
    MenuItem({ content: '合并优先', onClick: () => this.mergePriority(cat) })
  }
}

三、总结

Menu 通过 bindContextMenu 绑定到组件,长按触发弹出操作列表。

核心要点

  • .bindContextMenu(builder, isLongPress) 绑定菜单
  • Menu + MenuItem 构建菜单项
  • 适合长按列表项弹出操作的场景

下一篇预告:第 101 篇将深入 anchorPosition——菜单锚点定位。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐