OpenHarmony菜单自定义图标设置
一 使用 Menu 与 MenuItem 设置图标
二 代码示例 ArkTS
import { Menu, MenuItem, MenuItemGroup } from '@kit.ArkUI';
@Entry
@Component
struct SimpleMenu {
build() {
Column({ space: 20 }) {
// 1) 基础菜单:左侧图标 + 文本 + 右侧图标
Menu() {
MenuItemGroup({ header: '基础' }) {
MenuItem({
startIcon: $r('app.media.ic_copy'), // 左侧图标
content: '复制',
endIcon: $r('app.media.ic_arrow_right'), // 右侧图标
labelInfo: 'Ctrl+C',
onChange: (selected) => console.info('复制', selected)
})
MenuItem({
startIcon: $r('app.media.ic_paste'),
content: '粘贴',
endIcon: $r('app.media.ic_arrow_right'),
labelInfo: 'Ctrl+V',
onChange: (selected) => console.info('粘贴', selected)
})
}
}
.width(240)
.backgroundColor('#FFFFFF')
// 2) 选中态示例:选中时显示选中图标
Menu() {
MenuItemGroup({ header: '选中态' }) {
MenuItem({
startIcon: $r('app.media.ic_star'),
content: '收藏',
selected: false,
selectIcon: true, // 选中时显示选中图标
onChange: (selected) => console.info('收藏', selected)
})
}
}
.width(240)
.backgroundColor('#FFFFFF')
}
.padding(20)
}
}
三 标题栏菜单图标 EditableTitleBar
import { EditableTitleBar, EditableLeftIconType, promptAction } from '@kit.ArkUI';
@Entry
@Component
struct TitleBarWithMenu {
build() {
EditableTitleBar({
leftIconStyle: EditableLeftIconType.Back,
title: '编辑页面',
menuItems: [
{ value: $r('app.media.ic_save'), label: '保存', action: () => promptAction.showToast({ message: '保存' }) },
{ value: $r('app.media.ic_share'), label: '分享', action: () => promptAction.showToast({ message: '分享' }) }
],
onCancel: () => promptAction.showToast({ message: '取消' })
})
}
}
四 列表项滑动快捷菜单图标 ListItem.swipeAction
import { ListItem, Image } from '@kit.ArkUI';
@Builder itemEnd(index: number) {
Row() {
Image($r('app.media.ic_public_topping'))
.width(40).height(40)
.onClick(() => { /* 置顶逻辑 */ })
Image($r('app.media.ic_public_delete'))
.width(40).height(40)
.onClick(() => { /* 删除逻辑 */ })
}
.padding(4)
.justifyContent(FlexAlign.SpaceEvenly)
}
// 在 ForEach 渲染的 ListItem 中:
ListItem() { /* ... */ }
.swipeAction({ end: this.itemEnd(index) }) // 右滑显示
五 常见问题与排查
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。