欢迎光临
我们一直在努力

HarmonyOS应用开发实战:猫猫大作战-弹出菜单的实现

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

页面预览

前言

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

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

提示:本系列不讲 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——菜单锚点定位。

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


相关资源:

  • Menu API 参考
  • bindContextMenu
  • 开源鸿蒙跨平台社区
  • 第 99 篇:bindSheet
  • 第 101 篇:anchorPosition
赞(0)
未经允许不得转载:171主机测评 » HarmonyOS应用开发实战:猫猫大作战-弹出菜单的实现
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址