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 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci## Adding Child Components 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ciThe **<toolbar>** component supports only the **<toolbar-item>** child component and can display a maximum of five **<toolbar-item>** child components on a page. If there are six or more **<toolbar-item>** 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 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci## Setting Styles 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ciSet the **position** style for the **<toolbar>** component and set the font color, size, and background color of **<toolbar-item>** 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 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci## Binding Events 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ciBind the click event and long press event to the **<toolbar-item>** 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 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci> **NOTE** 171e41f4b71Sopenharmony_ci> 172e41f4b71Sopenharmony_ci> The **<toolbar>** 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 **<toolbar-item>** 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 **<toolbar-item>** 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 227