在 OpenHarmony(ArkUI,eTS/ArkTS) 里,“菜单设置图标”常见于两种场景:OptionMenu(右上角菜单) 和 自定义菜单(Menu 组件)。下面分别说明。
适用于 page 的 onMenu 配置。
// main_pages.json 或 page 配置中
{
"src": "pages/Index",
"onMenu": true
}
// Index.ets
@Entry
@Component
struct Index {
@State menuItems: Array<MenuItem> = [
{
value: "设置",
icon: $r('app.media.ic_settings') // 图标资源
},
{
value: "关于",
icon: $r('app.media.ic_about')
}
]
build() {
Column() {
Text('OpenHarmony 菜单示例')
}
.width('100%')
.height('100%')
}
onMenu() {
return this.menuItems
}
}
✅ 图标放在:
resources/base/media/ic_settings.png
适合按钮点击弹出菜单。
@Entry
@Component
struct MenuExample {
@State showMenu: boolean = false
build() {
Column() {
Button('点击菜单')
.onClick((event) => {
this.showMenu = true
})
.bindMenu([
{
value: '打开',
icon: $r('app.media.ic_open'),
action: () => {
console.log('打开')
}
},
{
value: '删除',
icon: $r('app.media.ic_delete'),
action: () => {
console.log('删除')
}
}
])
}
.width('100%')
.height('100%')
}
}
如果系统菜单不满足需求:
Column() {
List() {
ListItem() {
Row() {
Image($r('app.media.ic_home')).width(24).height(24)
Text('首页').margin({ left: 12 })
}
}
}
}
resources/base/media$r('app.media.xxx')✅ OpenHarmony 支持 svg 资源(推荐)
如果你用的是 具体版本(如 OpenHarmony 3.2 / 4.0) 或 具体菜单类型(Tabs / Menu / OptionMenu),可以告诉我,我给你更精确的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。