# 6.1:Scroll、Scroller

Scroll 作为可滚动的容器类组件,它最多包含一个子组件,当子组件的布局尺寸在指定的滚动方向上超过 Scroll 的视图窗口时,子组件可以滚动, Scroll 滚动方向只支持水平滚动和竖直滚动。 Scroller 作为滚动组件的控制器,它可以控制滚动组件的一些行为,比如滚动到特定位置,滚动到边界等。

# 6.1.1:Scroll定义介绍

interface ScrollInterface {
  (scroller?: Scroller): ScrollAttribute;
}
1
2
3
  • scroller:给 Scroll 绑定一个滚动控制器,该控制器可以控制子组件的各种滚动能力, Scroller 目前只支持绑定到 ScrollList

简单样例如下所示:

    样例运行结果如下图所示:

    6_1_1

    # 6.1.2:Scroll属性介绍

    declare class ScrollAttribute<T> extends CommonMethod<T> {
      scrollable(value: ScrollDirection): T;
      scrollBar(barState: BarState): T;
      scrollBarColor(color: Color | number | string): T;
      scrollBarWidth(value: number | string): T;
      edgeEffect(edgeEffect: EdgeEffect): T;
    }
    
    1
    2
    3
    4
    5
    6
    7
    • scrollable:设置 Scroll 的滚动方向, ScrollDirection 提供了以下 3 种滚动方向:

      • Vertical(默认值):仅支持竖直方向滚动。

          样例运行结果如下图所示:

          6_1_1
        • Horizontal:仅支持水平方向滚动。

            样例运行结果如下图所示:

            6_1_2
          • None:不可滚动。子组件即使超界了,也不能滚动。

        • scrollBar:设置滚动条状态, BarState 定义了以下 3 种状态:

          • Off:不显示滚动条。
          • On:一直显示滚动条。
          • Auto:按需显示(触摸时显示,2s后消失)。
        • scrollBarColorscrollBarWidth:设置滚动条的颜色和宽度,

          简单样例如下所示:

            样例运行结果如下图所示:

            6_1_3

          # 6.1.3:Scroll事件介绍

          declare class ScrollAttribute<T> extends CommonMethod<T> {
            onScroll(event: (xOffset: number, yOffset: number) => void): T;
            onScrollEdge(event: (side: Edge) => void): T;
            onScrollEnd(event: () => void): T;
          }
          
          1
          2
          3
          4
          5
          • onScroll:滚动事件回调, 返回滚动时水平、竖直方向的偏移量。
          • onScrollEdge:滚动到边缘事件回调。
          • onScrollEnd:滚动停止事件回调。

          # 6.1.4:Scroller简单介绍

          Scroller 作为滚动容器组件的控制器,它提供了滚动子组件的各种能力,比如设置子组件滚动指定位置、滚动到底部以及滚动到下一页上一页等能力。目前 Scrolller 只支持绑定到 ScrollList 上。

          Scroller 定义如下:

          export declare class Scroller {
            scrollTo(value: {
              xOffset: number | string, yOffset: number | string, animation?: { duration: number, curve: Curve }
            });
            scrollEdge(value: Edge);
            scrollPage(value: { next: boolean, direction?: Axis });
            currentOffset();
            scrollToIndex(value: number);
          }
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          • scrollTo:设置子组件滚动到指定位置,在滚动的时候还可以根据 animation 参数设置动画。
          • scrollEdge:滚动到边界, Edge 提供了多种类型,读者可自行查阅。
          • scrollPage:滚动到上一页或者下一页。
          • currentOffset:获取当前滚动的偏移量。
          • scrollToIndex:滚动到指定下标,目前只支持 List

          # 6.1.5:完整样例

          Scroll 结合 Scrollerr 完整样例如下所示:

            样例运行结果如下图所示:

            6_1_4
            (adsbygoogle = window.adsbygoogle || []).push({});
            请作者喝杯咖啡

            津公网安备 12011402001367号

            津ICP备2020008934号-2

            中央网信办互联网违法和不良信息举报中心

            天津市互联网违法和不良信息举报中心