1# SelectTitleBar
2
3
4下拉菜单标题栏包含一个下拉菜单,可用于页面之间的切换;可用于一级页面、二级及其以上界面(配置返回键)。
5
6
7> **说明:**
8>
9> 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
10
11
12## 导入模块
13
14```
15import { SelectTitleBar } from '@kit.ArkUI'
16```
17
18
19## 子组件
20
2122
23## 属性
24不支持[通用属性](ts-universal-attributes-size.md)
25
26## SelectTitleBar
27
28SelectTitleBar({selected: number, options: Array<SelectOption>, menuItems?: Array<SelectTitleBarMenuItem>, subtitle?: ResourceStr, badgeValue?: number, hidesBackButton?: boolean, onSelected?: (index: number) => void})
29
30**装饰器类型:**\@Component
31
32**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
33
34**系统能力:** SystemCapability.ArkUI.ArkUI.Full
35
36| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
37| -------- | -------- | -------- | -------- | -------- |
38| selected | number | 是 | \@Prop | 当前选中项目的索引。<br>第一项的索引为0。如果不设置该属性,则默认值为0。 |
39| options | Array&lt;[SelectOption](ts-basic-components-select.md#selectoption对象说明)&gt; | 是 | - | 下拉菜单中的项目。 |
40| menuItems | Array&lt;[SelectTitleBarMenuItem](#selecttitlebarmenuitem)&gt;              | 否 | - | 右侧菜单项目列表,定义标题栏右侧的菜单项目。 |
41| subtitle | [ResourceStr](ts-types.md#resourcestr)                                      | 否 | - | 子标题。 |
42| badgeValue | number                                                                      | 否 | - | 新事件标记。<br>取值范围:[-2147483648,2147483647],超出范围时会加上或减去4294967296,使得值仍在范围内,非整数时会舍去小数部分取整数部分,如5.5取5。<br>**说明:** 小于等于0时不显示信息标记。<br>最大消息数99,超过最大消息时仅显示99+。超大数值属于异常值,不显示信息标记。 |
43| hidesBackButton | boolean                                                                     | 否 | - | 是否隐藏左侧的返回箭头。<br>默认值:false。true:隐藏,false:显示。|
44| onSelected | (index:&nbsp;number)&nbsp;=&gt;&nbsp;void                                   | 否 | - | 下拉菜单项目选中触发的回调函数,传入选中项的索引。 |
45
46> **说明:**
47>
48> 入参对象不可为undefined,即`SelectTitleBar(undefined)`。
49
50## SelectTitleBarMenuItem
51
52**系统能力:** SystemCapability.ArkUI.ArkUI.Full
53
54| 名称 | 类型 | 必填 | 说明 |
55| -------- | -------- | -------- | -------- |
56| value | [ResourceStr](ts-types.md#resourcestr) | 是 | 图标资源。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
57| label<sup>13+</sup> | [ResourceStr](ts-types.md#resourcestr) | 否 | 图标标签描述。<br/>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 |
58| isEnabled | boolean | 否 | 是否启用。<br>默认值:false。true:启用,false:禁用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
59| action | ()&nbsp;=&gt;&nbsp;void | 否 | 触发时的动作闭包。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
60
61## 事件
62不支持[通用事件](ts-universal-events-click.md)
63
64## 示例
65
66该示例实现了简单的下拉菜单标题栏,带有返回箭头的下拉菜单标题栏和带有右侧菜单项目列表的下拉菜单标题栏。
67
68```ts
69import { SelectTitleBar, promptAction, SelectTitleBarMenuItem } from '@kit.ArkUI'
70
71
72@Entry
73@Component
74struct Index {
75  // 定义右侧菜单项目列表
76  private menuItems: Array<SelectTitleBarMenuItem> =
77    [
78      {
79        // 菜单图片资源
80        value: $r('sys.media.ohos_save_button_filled'),
81        // 启用图片
82        isEnabled: true,
83        // 点击菜单时触发事件
84        action: () => promptAction.showToast({ message: 'show toast index 1' }),
85      },
86      {
87        value: $r('sys.media.ohos_ic_public_copy'),
88        isEnabled: true,
89        action: () => promptAction.showToast({ message: 'show toast index 2' }),
90      },
91      {
92        value: $r('sys.media.ohos_ic_public_edit'),
93        isEnabled: true,
94        action: () => promptAction.showToast({ message: 'show toast index 3' }),
95      },
96      {
97        value: $r('sys.media.ohos_ic_public_remove'),
98        isEnabled: true,
99        action: () => promptAction.showToast({ message: 'show toast index 4' }),
100      },
101    ]
102
103  build() {
104    Row() {
105      Column() {
106        Divider().height(2).color(0xCCCCCC)
107        SelectTitleBar({
108          // 定义下拉列表选项
109          options: [
110            { value: '所有照片' },
111            { value: '本地(设备)' },
112            { value: '本地本地本地本地本地(储存卡)' }
113          ],
114          // 初始选择第一个下拉选项
115          selected: 0,
116          // 选中时触发函数
117          onSelected: (index) => promptAction.showToast({ message: 'page index ' + index }),
118          // 隐藏左侧返回箭头
119          hidesBackButton: true,
120        })
121        Divider().height(2).color(0xCCCCCC)
122        SelectTitleBar({
123          options: [
124            { value: '所有照片' },
125            { value: '本地(设备)' },
126            { value: '本地本地本地本地本地(储存卡)' },
127          ],
128          selected: 0,
129          onSelected: (index) => promptAction.showToast({ message: 'page index ' + index }),
130          hidesBackButton: false,
131        })
132        Divider().height(2).color(0xCCCCCC)
133        SelectTitleBar({
134          options: [
135            { value: '所有照片' },
136            { value: '本地(设备)' },
137            { value: '本地本地本地本地本地(储存卡)' },
138          ],
139          selected: 1,
140          onSelected: (index) => promptAction.showToast({ message: 'page index ' + index }),
141          subtitle: 'example@example.com',
142        })
143        Divider().height(2).color(0xCCCCCC)
144        SelectTitleBar({
145          options: [
146            { value: '所有照片' },
147            { value: '本地(设备)' },
148            { value: '本地本地本地本地本地(储存卡)' },
149          ],
150          selected: 1,
151          onSelected: (index) => promptAction.showToast({ message: 'page index ' + index }),
152          subtitle: 'example@example.com',
153          menuItems: [{ isEnabled: true, value: $r('sys.media.ohos_save_button_filled'),
154            action: () => promptAction.showToast({ message: 'show toast index 1' }),
155          }],
156        })
157        Divider().height(2).color(0xCCCCCC)
158        SelectTitleBar({
159          options: [
160            { value: '所有照片' },
161            { value: '本地(设备)' },
162            { value: '本地本地本地本地本地(储存卡)' },
163          ],
164          selected: 0,
165          onSelected: (index) => promptAction.showToast({ message: 'page index ' + index }),
166          subtitle: 'example@example.com',
167          menuItems: this.menuItems,
168          badgeValue: 99,
169          hidesBackButton: true,
170        })
171        Divider().height(2).color(0xCCCCCC)
172      }.width('100%')
173    }.height('100%')
174  }
175}
176```
177
178![zh-cn_image_selecttitlebar_example01](figures/zh-cn_image_selecttitlebar_example01.png)