跳到主要内容

HdsSideMenu

本模块提供一种菜单栏样式组件。设置侧边栏对应的一级菜单和二级菜单,并显示其新消息数量。

起始版本: 6.0.0(20)

导入模块

import { HdsSideMenu, HdsSideMenuMainItem, HdsSideMenuSubItem, HdsSideMenuBadgeParam} from '@kit.UIDesignKit';

接口

HdsSideMenu({items?: HdsSideMenuMainItem[], selectedIndex: number, $selectedIndex?: OnSelectedIndexChange, maxItemTextLines?: number})

侧边菜单栏组件信息。

装饰器类型: @ComponentV2

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数名类型必填装饰器类型说明
itemsHdsSideMenuMainItem[]@Param一级菜单栏组,数量最多为5个。
selectedIndexnumber@Param @Require当前选中的菜单栏。 取值范围:大于等于-1的整数。 -1表示当前侧边菜单栏没有菜单被选中。
$selectedIndexOnSelectedIndexChange@Event用于双向绑定selectedIndex。
maxItemTextLinesnumber@Param设置最大内容行数。 默认值:1。 取值范围:(0, +∞)的整数。

build

build(): void

struct的默认构造函数,无法直接调用此方法。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

HdsSideMenuMainItem

HdsSideMenu一级菜单栏。

装饰器类型:@ObservedV2

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

constructor

constructor(param: HdsSideMenuMainItemParam)

HdsSideMenuMainItem的构造函数。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数:

参数名类型必填说明
paramHdsSideMenuMainItemParamHdsSideMenu一级菜单栏的参数。

getSideMenuSubItem

getSideMenuSubItem(): HdsSideMenuSubItem[]

从一级菜单对象获取当前菜单下的二级菜单对象数组。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

返回值:

类型说明
HdsSideMenuSubItem[]当前菜单下的二级菜单对象数组。

updateBadge

updateBadge(badge?: HdsSideMenuBadgeParam): HdsSideMenuMainItem

更新一级菜单栏的角标属性。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数:

参数名类型必填说明
badgeHdsSideMenuBadgeParamHdsSideMenu上带信息提醒的图标配置信息。

返回值:

类型说明
HdsSideMenuMainItem当前菜单下的一级菜单对象。

HdsSideMenuSubItem

HdsSideMenu二级菜单栏。

装饰器类型:@ObservedV2

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

constructor

constructor(param: HdsSideMenuSubItemParam)

HdsSideMenuSubItem的构造函数。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数:

参数名类型必填说明
paramHdsSideMenuSubItemParamHdsSideMenu二级菜单栏的参数。

updateBadge

updateBadge(badge?: HdsSideMenuBadgeParam): HdsSideMenuSubItem

更新二级菜单栏的角标属性。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数:

参数名类型必填说明
badgeHdsSideMenuBadgeParamHdsSideMenu上带信息提醒的图标配置信息。

返回值:

类型说明
HdsSideMenuSubItem当前菜单下的二级菜单对象。

HdsSideMenuBadgeParam

HdsSideMenu上带信息提醒的图标配置信息。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

名称类型只读可选说明
countnumber设置提醒消息数。值为0时不显示;值为1时,显示“·”;大于99时,显示“99+”。不支持设置小于0的数字。 默认值:0。
valuestring提示内容的文本字符串,超长文本换行显示。 默认值:""。

HdsSideMenuBaseItemParam

HdsSideMenu菜单栏基础类。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

名称类型只读可选说明
itemIdstring菜单的id。 默认值:""。
labelResourceStr菜单显示的文本内容。
actionCallback点击菜单时的回调。

HdsSideMenuMainItemParam

HdsSideMenu一级菜单栏配置项,继承自HdsSideMenuBaseItemParam

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

名称类型只读可选说明
iconResourceStr设置一级菜单栏的图标,优先级高于symbol。
symbolSymbolGlyphModifier设置一级菜单栏的图标。
hdsSideMenuSubItemHdsSideMenuSubItem[]设置一级菜单栏中的二级菜单栏数组。二级菜单栏数量最多5个。
badgeHdsSideMenuBadgeParam设置一级菜单栏上带信息提醒的图标配置信息。

HdsSideMenuSubItemParam

HdsSideMenu二级菜单栏配置项,继承自HdsSideMenuBaseItemParam

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

名称类型只读可选说明
badgeHdsSideMenuBadgeParam设置二级菜单栏上带信息提醒的图标配置信息。

事件

OnSelectedIndexChange

type OnSelectedIndexChange = (selectedIndex: number) => void

HdsSideMenu的selectedIndex发生变化时的回调函数。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.UIDesign.HDSPattern.Standard

起始版本: 6.0.0(20)

参数:

参数名类型必填说明
selectedIndexnumber选择项的序号。

示例

HdsSideMenu提供一种菜单栏样式。

import { HdsSideMenu, HdsSideMenuMainItem, HdsSideBar } from '@kit.UIDesignKit';
import { SymbolGlyphModifier } from '@kit.ArkUI';

@Entry
@ComponentV2
struct Index {
@Local isShowSidebar: boolean = true;
@Local selectedIndex: number = 1;
listOptionsDefault?: HdsSideMenuMainItem[] = [
new HdsSideMenuMainItem({
symbol: new SymbolGlyphModifier($r('sys.symbol.doc_plaintext')),
label: '全部备忘',
}),
new HdsSideMenuMainItem({
symbol: new SymbolGlyphModifier($r('sys.symbol.star')),
label: '收藏',
}),
new HdsSideMenuMainItem({
symbol: new SymbolGlyphModifier($r('sys.symbol.lock')),
label: '加锁',
}),
new HdsSideMenuMainItem({
symbol: new SymbolGlyphModifier($r('sys.symbol.trash')),
label: '最近删除',
}),
new HdsSideMenuMainItem({
label: '文件夹',
}),
]

@Builder
SideBarPanelBuilder() {
Column() {
HdsSideMenu({
items: this.listOptionsDefault,
selectedIndex: this.selectedIndex,
$selectedIndex: (selectedIndex: number) => {
this.selectedIndex = selectedIndex;
},
})
}
.width('100%')
.height('100%')
.margin(40)
}

@Builder
ContentPanelBuilder() {
Column() {
Image($r('sys.media.ohos_ic_public_albums'))
.width('120vp')
.height('120vp')
}
.margin({ top: 250 })
}

@BuilderParam contentBuilder: () => void = this.ContentPanelBuilder
@BuilderParam sideBarBuilder: () => void = this.SideBarPanelBuilder

@Builder
build() {
Stack({ alignContent: Alignment.TopStart }) {
Button() {
SymbolGlyph(this.isShowSidebar ? $r('sys.symbol.open_sidebar') : $r('sys.symbol.close_sidebar'))
.fontWeight(FontWeight.Normal)
.fontSize($r('sys.float.ohos_id_text_size_headline7'))
.fontColor([$r('sys.color.ohos_id_color_titlebar_icon')])
.hitTestBehavior(HitTestMode.None)
}
.id('side_bar_button')
.backgroundColor($r('sys.color.ohos_id_color_button_normal'))
.height(30)
.width(30)
.onClick(() => {
this.isShowSidebar = !this.isShowSidebar;
})
.zIndex(1)
.margin({ top: 10, left: 10 })

HdsSideBar({
sideBarPanelBuilder: (): void => {
this.sideBarBuilder()
},
contentPanelBuilder: (): void => {
this.contentBuilder()
},
isShowSideBar: this.isShowSidebar,
$isShowSideBar: (isShowSidebar: boolean) => {
this.isShowSidebar = !isShowSidebar
},
})
}
}
}