1e41f4b71Sopenharmony_ci# <toolbar> Development
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ciThe **<toolbar>** component shows actions available on the current screen and can be used for level-1 navigation. For details, see [toolbar](../reference/apis-arkui/arkui-js/js-components-basic-toolbar.md).
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Creating a <toolbar> Component
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciCreate a **<toolbar>** component in the .hml file under **pages/index**.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```html
13e41f4b71Sopenharmony_ci<!-- xxx.hml -->
14e41f4b71Sopenharmony_ci<div class="container">
15e41f4b71Sopenharmony_ci  <toolbar style="background-color: #F1F3F5;">
16e41f4b71Sopenharmony_ci    <toolbar-item value="item1"></toolbar-item>
17e41f4b71Sopenharmony_ci    <toolbar-item value="item2"></toolbar-item>
18e41f4b71Sopenharmony_ci  </toolbar>
19e41f4b71Sopenharmony_ci</div>
20e41f4b71Sopenharmony_ci```
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci```css
24e41f4b71Sopenharmony_ci/* xxx.css */
25e41f4b71Sopenharmony_ci.container {
26e41f4b71Sopenharmony_ci  width: 100%;
27e41f4b71Sopenharmony_ci  height: 100%; 
28e41f4b71Sopenharmony_ci  flex-direction: column;
29e41f4b71Sopenharmony_ci  justify-content: center;
30e41f4b71Sopenharmony_ci  align-items: center;
31e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
32e41f4b71Sopenharmony_ci}
33e41f4b71Sopenharmony_citoolbar-item{
34e41f4b71Sopenharmony_ci  font-size: 35px;
35e41f4b71Sopenharmony_ci}
36e41f4b71Sopenharmony_ci```
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci![en-us_image_0000001275922977](figures/en-us_image_0000001275922977.gif)
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci## Adding Child Components
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ciThe **&lt;toolbar&gt;** component supports only the **&lt;toolbar-item&gt;** child component and can display a maximum of five **&lt;toolbar-item&gt;** child components on a page. If there are six or more **&lt;toolbar-item&gt;** child components, the first four child components are retained, and the rest are moved to the **More** option on the toolbar and can be displayed on a pop-up window by clicking **More**. Under **More**, the child components are displayed in the default style; the custom style settings do not take effect.
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci```html
46e41f4b71Sopenharmony_ci<!-- xxx.hml -->
47e41f4b71Sopenharmony_ci<div class="container">
48e41f4b71Sopenharmony_ci  <toolbar>
49e41f4b71Sopenharmony_ci    <toolbar-item value="item1"></toolbar-item>    
50e41f4b71Sopenharmony_ci    <toolbar-item value="item2"></toolbar-item>    
51e41f4b71Sopenharmony_ci    <toolbar-item value="item3"></toolbar-item>    
52e41f4b71Sopenharmony_ci    <toolbar-item value="item4"></toolbar-item>    
53e41f4b71Sopenharmony_ci    <toolbar-item value="item5"></toolbar-item>    
54e41f4b71Sopenharmony_ci    <toolbar-item value="item6"></toolbar-item>
55e41f4b71Sopenharmony_ci  </toolbar>
56e41f4b71Sopenharmony_ci</div>
57e41f4b71Sopenharmony_ci```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci```css
61e41f4b71Sopenharmony_ci/* xxx.css */
62e41f4b71Sopenharmony_ci.container {
63e41f4b71Sopenharmony_ci  width: 100%;
64e41f4b71Sopenharmony_ci  height: 100%; 
65e41f4b71Sopenharmony_ci  flex-direction: column;
66e41f4b71Sopenharmony_ci  justify-content: center;
67e41f4b71Sopenharmony_ci  align-items: center;
68e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
69e41f4b71Sopenharmony_ci}
70e41f4b71Sopenharmony_citoolbar-item{
71e41f4b71Sopenharmony_ci  font-size: 35px;
72e41f4b71Sopenharmony_ci}
73e41f4b71Sopenharmony_ci```
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci![en-us_image_0000001232002988](figures/en-us_image_0000001232002988.gif)
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci## Setting Styles
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ciSet the **position** style for the **&lt;toolbar&gt;** component and set the font color, size, and background color of **&lt;toolbar-item&gt;** child components.
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci```html
85e41f4b71Sopenharmony_ci<!-- xxx.hml -->
86e41f4b71Sopenharmony_ci<div class="container">
87e41f4b71Sopenharmony_ci  <toolbar style="position: fixed;bottom: 5%;width: 100%;background-color: #F1F3F5;">
88e41f4b71Sopenharmony_ci    <toolbar-item value="item1" icon="common/images/1.png" class="toolbarActive"></toolbar-item>
89e41f4b71Sopenharmony_ci    <toolbar-item value="item2" icon="common/images/2.png"></toolbar-item>
90e41f4b71Sopenharmony_ci    <toolbar-item value="item3" icon="common/images/1.png"></toolbar-item>
91e41f4b71Sopenharmony_ci    <toolbar-item value="item4" icon="common/images/2.png"></toolbar-item>
92e41f4b71Sopenharmony_ci  </toolbar>
93e41f4b71Sopenharmony_ci</div>
94e41f4b71Sopenharmony_ci```
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci```css
99e41f4b71Sopenharmony_ci/* xxx.css */
100e41f4b71Sopenharmony_ci.container {
101e41f4b71Sopenharmony_ci  background-color: #F1F3F5;
102e41f4b71Sopenharmony_ci  flex-direction: column;
103e41f4b71Sopenharmony_ci  width: 100%;
104e41f4b71Sopenharmony_ci  height: 100%; 
105e41f4b71Sopenharmony_ci  justify-content: center;
106e41f4b71Sopenharmony_ci  align-items: center;
107e41f4b71Sopenharmony_ci}
108e41f4b71Sopenharmony_citoolbar-item{
109e41f4b71Sopenharmony_ci  font-size: 35px;
110e41f4b71Sopenharmony_ci}
111e41f4b71Sopenharmony_ci```
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci![en-us_image_0000001275803149](figures/en-us_image_0000001275803149.png)
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci## Binding Events
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ciBind the click event and long press event to the **&lt;toolbar-item&gt;** child components, so that the text of these components turns red upon click and turns blue upon long press.
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci```html
123e41f4b71Sopenharmony_ci<!-- xxx.hml -->
124e41f4b71Sopenharmony_ci<div class="container">
125e41f4b71Sopenharmony_ci  <toolbar style="position: fixed;top: 50%;width: 100%;background-color: #F1F3F5;">
126e41f4b71Sopenharmony_ci    <toolbar-item value="item1" icon="common/images/1.png" style="color: {{itemColor}};" onclick="itemClick"></toolbar-item>
127e41f4b71Sopenharmony_ci    <toolbar-item value="item2" icon="common/images/2.png"  style="color: {{itemColor}}"></toolbar-item>
128e41f4b71Sopenharmony_ci    <toolbar-item value="item3" icon="common/images/3.png"  style="color: {{itemColor}}" onlongpress="itemLongPress"></toolbar-item>
129e41f4b71Sopenharmony_ci  </toolbar>
130e41f4b71Sopenharmony_ci</div>
131e41f4b71Sopenharmony_ci```
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci```css
135e41f4b71Sopenharmony_ci/* xxx.css */
136e41f4b71Sopenharmony_ci.container {
137e41f4b71Sopenharmony_ci  background-color: #F1F3F5;   
138e41f4b71Sopenharmony_ci  flex-direction: column;
139e41f4b71Sopenharmony_ci  width: 100%;
140e41f4b71Sopenharmony_ci  height: 100%; 
141e41f4b71Sopenharmony_ci  justify-content: center;
142e41f4b71Sopenharmony_ci  align-items: center;
143e41f4b71Sopenharmony_ci}
144e41f4b71Sopenharmony_citoolbar-item{
145e41f4b71Sopenharmony_ci  font-size: 35px;
146e41f4b71Sopenharmony_ci}
147e41f4b71Sopenharmony_ci```
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci```js
151e41f4b71Sopenharmony_ci// xxx.js
152e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction';
153e41f4b71Sopenharmony_ciexport default {
154e41f4b71Sopenharmony_ci  data:{
155e41f4b71Sopenharmony_ci    itemColor:'black'
156e41f4b71Sopenharmony_ci  },
157e41f4b71Sopenharmony_ci  itemClick(){
158e41f4b71Sopenharmony_ci    this.itemColor= "red";
159e41f4b71Sopenharmony_ci    promptAction.showToast({duration:2000,message:'item click'});
160e41f4b71Sopenharmony_ci  },
161e41f4b71Sopenharmony_ci  itemLongPress(){
162e41f4b71Sopenharmony_ci    promptAction.showToast({duration:2000,message:'item long press'});
163e41f4b71Sopenharmony_ci    this.itemColor= "blue";
164e41f4b71Sopenharmony_ci  },
165e41f4b71Sopenharmony_ci}
166e41f4b71Sopenharmony_ci```
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci![en-us_image_0000001275803153](figures/en-us_image_0000001275803153.gif)
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci> **NOTE**
171e41f4b71Sopenharmony_ci>
172e41f4b71Sopenharmony_ci> The **&lt;toolbar&gt;** component does not allow adding of events or methods, but its child components do.
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci## Example Scenario
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ciIn this example, you'll implement a **&lt;toolbar-item&gt;** component, clicking which will trigger a change in the text color and the image corresponding to the component.
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ciUse the **for** loop to create a **&lt;toolbar-item&gt;** component and bind a click event to it, so that clicking the component will obtain and store an index value. When setting the text color, the system checks whether the current index value is the stored value. If yes, the system sets the color to red. If no, the system uses the default color.
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci```html
182e41f4b71Sopenharmony_ci<!-- xxx.hml -->
183e41f4b71Sopenharmony_ci<div class="container">
184e41f4b71Sopenharmony_ci  <image src="{{imgList[active]}}"></image>
185e41f4b71Sopenharmony_ci  <toolbar style="position: fixed;bottom: 5%;width: 100%;background-color: #F1F3F5;">
186e41f4b71Sopenharmony_ci    <toolbar-item value="{{ item.option}}" icon="{{item.icon}}" style="color: {{active == $idx?'red':'black'}};background-color: {{active== $idx?'#dbe7f1':'#F1F3F5'}};" for="{{item in itemList}}" onclick="itemClick({{$idx}})"></toolbar-item>
187e41f4b71Sopenharmony_ci    </toolbar>
188e41f4b71Sopenharmony_ci</div>
189e41f4b71Sopenharmony_ci```
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci```css
193e41f4b71Sopenharmony_ci/* xxx.css */
194e41f4b71Sopenharmony_ci.container {
195e41f4b71Sopenharmony_ci  background-color: #F1F3F5;   
196e41f4b71Sopenharmony_ci  flex-direction: column;
197e41f4b71Sopenharmony_ci  width: 100%;
198e41f4b71Sopenharmony_ci  justify-content: center;
199e41f4b71Sopenharmony_ci  align-items: center;
200e41f4b71Sopenharmony_ci}
201e41f4b71Sopenharmony_citoolbar-item{
202e41f4b71Sopenharmony_ci  font-size: 35px;
203e41f4b71Sopenharmony_ci}
204e41f4b71Sopenharmony_ci```
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci```js
208e41f4b71Sopenharmony_ci// xxx.js
209e41f4b71Sopenharmony_ciexport default {
210e41f4b71Sopenharmony_ci  data:{
211e41f4b71Sopenharmony_ci    active: 0,
212e41f4b71Sopenharmony_ci    imgList:["common/images/1.png","common/images/2.png","common/images/3.png","common/images/4.png"],
213e41f4b71Sopenharmony_ci    itemList:[
214e41f4b71Sopenharmony_ci      {option:'item1',icon:'common/images/1.png'},
215e41f4b71Sopenharmony_ci      {option:'item2',icon:'common/images/2.png'},
216e41f4b71Sopenharmony_ci      {option:'item3',icon:'common/images/3.png'},
217e41f4b71Sopenharmony_ci      {option:'item4',icon:'common/images/4.png'},
218e41f4b71Sopenharmony_ci    ]
219e41f4b71Sopenharmony_ci  },
220e41f4b71Sopenharmony_ci  itemClick(id){
221e41f4b71Sopenharmony_ci    this.active= id;
222e41f4b71Sopenharmony_ci  },
223e41f4b71Sopenharmony_ci}
224e41f4b71Sopenharmony_ci```
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci![en-us_image_0000001231683128](figures/en-us_image_0000001231683128.gif)
227