# Select The **** component provides a drop-down list box that allows users to select among multiple options. > **NOTE** > > This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. ## Child Components Not supported ## APIs Select(options: Array\<[SelectOption](#selectoption)\>) ## SelectOption | Name| Type | Mandatory| Description | | ------ | ----------------------------------- | ---- | -------------- | | value | [ResourceStr](ts-types.md#resourcestr) | Yes | Value of an option in the drop-down list box.| | icon | [ResourceStr](ts-types.md#resourcestr) | No | Icon of an option in the drop-down list box.| ## Attributes In addition to the [universal attributes](ts-universal-attributes-size.md), the following attributes are supported. | Name | Type | Description | | ----------------------- | ------------------------------------- | --------------------------------------------- | | selected | number | Index of the initial selected option in the drop-down list box. The index of the first option is **0**.
If this attribute is not set, the default value **-1** is used, indicating that no option is selected.
Since API version 10, this attribute supports [$$](../../quick-start/arkts-two-way-sync.md) for two-way binding of variables.| | value | string | Text of the drop-down button. By default, it will be replaced by the content of the selected option.
Since API version 10, this attribute supports [$$](../../quick-start/arkts-two-way-sync.md) for two-way binding of variables. | | font | [Font](ts-types.md#font) | Text font of the drop-down button.
Default value:
{
size: '16fp',
weight: FontWeight.Medium
} | | fontColor | [ResourceColor](ts-types.md#resourcecolor) | Text color of the drop-down button.
Default value: **'\#E6FFFFFF'**| | selectedOptionBgColor | [ResourceColor](ts-types.md#resourcecolor) | Background color of the selected option in the drop-down list box.
Default value: **'\#33007DFF'**| | selectedOptionFont | [Font](ts-types.md#font) | Text font of the selected option in the drop-down list box.
Default value:
{
size: '16fp',
weight: FontWeight.Regular
} | | selectedOptionFontColor | [ResourceColor](ts-types.md#resourcecolor) | Text color of the selected option in the drop-down list box.
Default value: **'\#ff007dff'**| | optionBgColor | [ResourceColor](ts-types.md#resourcecolor) | Background color of an option in the drop-down list box.
Default value: **'\#ffffffff'**| | optionFont | [Font](ts-types.md#font) | Text font of an option in the drop-down list box.
Default value:
{
size: '16fp',
weight: FontWeight.Regular
} | | optionFontColor | [ResourceColor](ts-types.md#resourcecolor) | Text color of an option in the drop-down list box.
Default value: **'\#ff182431'**| | space10+ | [Length](ts-types.md#length) | Spacing between the text and arrow of an option.
**NOTE**
This attribute cannot be set in percentage.| | arrowPosition10+ | [ArrowPosition](#arrowposition10) | Alignment between the text and arrow of an option.
Default value: **ArrowPosition.END**| | menuAlign10+ | alignType: [MenuAlignType](#menualigntype10),
offset?: [Offset](ts-types.md#offset) | Alignment between the drop-down button and the drop-down menu.
- **alignType**: alignment type. Mandatory.
- **offset**: offset of the drop-down menu relative to the drop-down button after alignment based on the specified alignment type.
Default value: **{dx: 0, dy: 0}**| ## ArrowPosition10+ | Name | Description | | ------------------- | ------------------ | | END10+ | The text is in front of the arrow.| | START10+ | The arrow is in front of the text.| ## MenuAlignType10+ | Name | Description | | ------------------- | ------------------ | | START | Aligned with the start edge in the same direction as the language in use.| | CENTER | Aligned with the center.| | END | Aligned with the end edge in the same direction as the language in use.| ## Events | Name | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | | onSelect(callback: (index: number, value?: string) => void) | Invoked when an option in the drop-down list box is selected.
**index**: index of the selected option.
**value**: value of the selected option.| ## Example ```ts // xxx.ets @Entry @Component struct SelectExample { @State text: string = "TTTTT" @State index: number = 2 @State space: number = 8 @State arrowPosition: ArrowPosition = ArrowPosition.END build() { Column() { Select([{ value: 'aaa', icon: "/common/public_icon.svg" }, { value: 'bbb', icon: "/common/public_icon.svg" }, { value: 'ccc', icon: "/common/public_icon.svg" }, { value: 'ddd', icon: "/common/public_icon.svg" }]) .selected(this.index) .value(this.text) .font({ size: 16, weight: 500 }) .fontColor('#182431') .selectedOptionFont({ size: 16, weight: 400 }) .optionFont({ size: 16, weight: 400 }) .space(this.space) .arrowPosition(this.arrowPosition) .onSelect((index:number, text: string)=>{ console.info('Select:' + index) this.index = index; this.text = text; }) }.width('100%') } } ``` ![](figures/select.png)