🚀一、Menu元件
Menu元件是一種常見的使用者介面(UI)控制元件,用於在移動應用程式中顯示可選項列表。它通常由一系列連結或按鈕組成,以幫助使用者導航和選擇所需的操作。Menu元件可以在水平或垂直方向上呈現,可以是下拉或彈出式的,並可以在需要時動態更新其內容。通常,Menu元件可以在導航欄、側邊欄或上下文選單中找到。一些Menu元件還支援圖示和快捷鍵,以增強使用者互動性和可用性。
🔎1.建立預設樣式的選單
預設樣式的選單指的是作業系統預設提供的選單樣式,在不經過樣式定義的情況下,選單的外觀和行為取決於作業系統。例如,大多數作業系統提供了一個預設的下拉選單樣式,其中包含一個向下箭頭和一個下拉選單,當使用者單擊時,列表會向下滑動。而作業系統的選單通常包括一個固定的樣式。
@Entry
@Component
struct Index {
build() {
Row() {
Button('click for Menu')
.bindMenu([
{
value: 'Menu1',
action: () => {
console.info('handle Menu1 select')
}
}
])
}
.margin(20)
.height('100%')
}
}
🔎2.建立自定義樣式的選單
雖然預設樣式的選單可以提供一些基本的選單操作,但通常它們無法滿足大多數應用程式或網站的需求,因此需要自定義樣式的選單。
@Entry
@Component
struct Index {
@State select: boolean = true
private iconStr: ResourceStr = $r("app.media.app_icon")
private iconStr2: ResourceStr = $r("app.media.app_icon")
@Builder
SubMenu() {
Menu() {
MenuItem({ content: "複製", labelInfo: "Ctrl+C" })
MenuItem({ content: "貼上", labelInfo: "Ctrl+V" })
}
}
@Builder
MyMenu(){
Menu() {
MenuItem({ startIcon: $r("app.media.icon"), content: "選單選項" })
MenuItem({ startIcon: $r("app.media.icon"), content: "選單選項" }).enabled(false)
MenuItem({
startIcon: this.iconStr,
content: "選單選項",
endIcon: $r("app.media.app_icon"),
// 當builder引數進行配置時,表示與menuItem項繫結了子選單。滑鼠hover在該選單項時,會顯示子選單。
builder: this.SubMenu.bind(this),
})
MenuItemGroup({ header: '小標題' }) {
MenuItem({ content: "選單選項" })
.selectIcon(true)
.selected(this.select)
.onChange((selected) => {
console.info("menuItem select" + selected);
this.iconStr2 = $r("app.media.icon");
})
MenuItem({
startIcon: $r("app.media.app_icon"),
content: "選單選項",
endIcon: $r("app.media.app_icon"),
builder: this.SubMenu.bind(this)
})
}
MenuItem({
startIcon: this.iconStr2,
content: "選單選項",
endIcon: $r("app.media.app_icon")
})
}
}
build() {
Row() {
Button('click for Menu')
.bindMenu(this.MyMenu)
// .bindContextMenu(this.MyMenu, ResponseType.RightClick) 設定選單開啟行為
}
}
}
本人測試子選單在模擬器和預覽都出不來
🚀寫在最後
- 如果你覺得這篇內容對你還蠻有幫助,我想邀請你幫我三個小忙:
- 點贊,轉發,有你們的 『點贊和評論』,才是我創造的動力。
- 關注小編,同時可以期待後續文章ing🚀,不定期分享原創知識。
- 更多鴻蒙最新技術知識點,請關注作者部落格:https://t.doruo.cn/14DjR1rEY