ScrollBar

About 4 min

ScrollBar

说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

滚动条组件ScrollBar,用于配合可滚动组件使用,如List、Grid、Scroll。

权限列表

子组件

可以包含单个子组件。

接口

ScrollBar(value: ScrollBarOption)

  • ScrollBarOption的参数描述

    参数名

    参数类型

    必填

    默认值

    参数描述

    scroller

    Scroller

    -

    可滚动组件的控制器。用于与可滚动组件进行绑定。

    direction

    ScrollBarDirection

    ScrollBarDirection.Vertical

    滚动条的方向,控制可滚动组件对应方向的滚动。

    state

    BarState

    BarState.Auto

    滚动条状态。

    说明: ScrollBar组件负责定义可滚动区域的行为样式,ScrollBar的子节点负责定义滚动条的行为样式。 滚动条组件与可滚动组件通过Scroller进行绑定,且只有当两者方向相同时,才能联动,ScrollBar与可滚动组件仅支持一对一绑定。

  • ScrollBarDirection枚举说明

    名称

    描述

    Vertical

    纵向滚动条。

    Horizontal

    横向滚动条。

  • BarState枚举说明

    名称

    描述

    On

    常驻显示。

    Off

    不显示。

    Auto

    按需显示(触摸时显示,无操作2s后消失)。

示例

@Entry
@Component
struct ScrollBarExample {
  private scroller: Scroller = new Scroller()
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  build() {
    Column() {
      Stack({ alignContent: Alignment.End }) {
        Scroll(this.scroller) {
          Flex({ direction: FlexDirection.Column }) {
            ForEach(this.arr, (item) => {
              Row() {
                Text(item.toString())
                  .width('90%')
                  .height(100)
                  .backgroundColor('#3366CC')
                  .borderRadius(15)
                  .fontSize(16)
                  .textAlign(TextAlign.Center)
                  .margin({ top: 5 })
              }
            }, item => item)
          }.margin({ left: 52 })
        }
        .scrollBar(BarState.Off)
        .scrollable(ScrollDirection.Vertical)
        ScrollBar({ scroller: this.scroller, direction: ScrollBarDirection.Vertical,state: BarState.Auto }) {
          Text()
            .width(30)
            .height(100)
            .borderRadius(10)
            .backgroundColor('#C0C0C0')
        }.width(30).backgroundColor('#ededed')
      }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38