1# ArcScrollBar 2 3<!--Kit: ArkUI--> 4<!--Subsystem: ArkUI--> 5<!--Owner: @shengu_lancer; @yylong--> 6<!--Designer: @yylong--> 7<!--Tester: @liuzhenshuo--> 8<!--Adviser: @HelloCrease--> 9 10弧形滚动条组件ArcScrollBar,用于配合可滚动组件使用,如[ArcList](ts-container-arclist.md)、[List](ts-container-list.md)、[Grid](ts-container-grid.md)、[Scroll](ts-container-scroll.md)、[WaterFlow](ts-container-waterflow.md)。 11 12> **说明:** 13> 14> - 该组件从API version 18开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 15> - ArcScrollBar不设置宽高时,采用父组件[布局约束](../js-apis-arkui-frameNode.md#layoutconstraint12)中的maxSize作为宽高。如果ArcScrollBar的父组件存在可滚动组件,如[ArcList](ts-container-arclist.md)、[List](ts-container-list.md)、[Grid](ts-container-grid.md)、[Scroll](ts-container-scroll.md)、[WaterFlow](ts-container-waterflow.md),建议设置ArcScrollBar宽高,否则ArcScrollBar的宽高可能为无穷大。 16 17 18## 子组件 19 20不包含子组件。 21 22## 接口 23 24ArcScrollBar(options: ArcScrollBarOptions) 25 26ArcScrollBar的构造函数。 27 28**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 29 30**系统能力:** SystemCapability.ArkUI.ArkUI.Circle 31 32**参数:** 33 34| 参数名 | 类型 | 必填 | 说明 | 35| -------- | -------- | -------- | -------- | 36| options | [ArcScrollBarOptions](#arcscrollbaroptions)| 是 | 滚动条组件参数。 | 37 38## ArcScrollBarOptions 39 40ArcScrollBar的构造函数参数。 41 42**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 43 44**系统能力:** SystemCapability.ArkUI.ArkUI.Circle 45 46| 名称 | 类型 | 只读 | 可选 | 说明 | 47| -------- | -------- | -- | -------- | -------- | 48| scroller | [Scroller](ts-container-scroll.md#scroller) | 否 | 否 | 可滚动组件的控制器,用于与可滚动组件进行绑定。 | 49| state | [BarState](ts-appendix-enums.md#barstate) | 否 | 是 | 滚动条状态。<br/>默认值:BarState.Auto | 50 51> **说明:** 52> 53> ArcScrollBar与可滚动组件需通过scroller进行绑定后方能实现联动,且ArcScrollBar与可滚动组件仅限于一对一的绑定方式。 54 55## 示例 56 57该示例通过ArcScrollBar与Scroll组件联动,设置了弧形外置滚动条。 58 59```ts 60import { ArcScrollBar } from '@kit.ArkUI'; 61 62@Entry 63@Component 64struct ArcScrollBarExample { 65 private scroller: Scroller = new Scroller(); 66 private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 67 68 build() { 69 Stack({ alignContent: Alignment.Center }) { 70 Scroll(this.scroller) { 71 Flex({ direction: FlexDirection.Column }) { 72 ForEach(this.arr, (item: number) => { 73 Row() { 74 Text(item.toString()) 75 .width('80%') 76 .height(60) 77 .backgroundColor('#3366CC') 78 .borderRadius(15) 79 .fontSize(16) 80 .textAlign(TextAlign.Center) 81 .margin({ top: 5 }) 82 } 83 }, (item: number) => item.toString()) 84 }.margin({ right: 15 }) 85 } 86 .width('90%') 87 .scrollBar(BarState.Off) 88 89 ArcScrollBar({ scroller: this.scroller, state: BarState.Auto }) 90 } 91 .width('100%') 92 .height('100%') 93 } 94} 95``` 96 97