import { SyntheticEvent, SyntheticEventListener } from '../events'; import { Point, Size } from '../math'; import { HitTestResult } from './hit-test'; import type { PaintingContext } from './painting-context'; import type { RenderObject, Visitor } from './render-object'; import { RenderPipeline } from './render-pipeline'; import { RenderSingleChild } from './render-single-child'; export declare enum ScrollAxis { None = 0, Horizontal = 1, Vertical = 2 } export declare enum ScrollBounds { None = 0, Horizontal = 1, Vertical = 2, /** * 相当于设置 ScrollBounds.Horizontal | ScrollBounds.Vertical * @deprecated */ Fit = 3 } export declare class RenderScrollView extends RenderSingleChild { static readonly DEFAULT_SCROLLBAR_AUTO_HIDE_DELAY = 2000; private hScrollbar; private vScrollbar; readonly scrollbarMargin = 4; constructor(); private handlePointerDownGrip; private handlePointerUpGrip; private handleWheel; /** * 滚动方向,默认 ScrollAxis.Horizontal | ScrollAxis.Vertical */ get scrollAxis(): number; set scrollAxis(value: number); private _scrollAxis; /** * 设置或获取是否按需展示滚动条 * * 滚动条是不占位的,他会覆盖在滚动内容上方 * * 默认情况下,当滚动范围大于滚动大小时,展示滚动条 * * 你也可以单独设置滚动条是否展示 * * 例如: * * ```typescript * // 仅按需展示水平滚动条 * myScrollView.scrollbar = ScrollAxis.Horizontal * ``` */ get scrollbar(): number; set scrollbar(value: number); private _scrollbar; /** * 滚动条自动消失的延迟 ms */ get scrollbarAutoHideDelay(): number; set scrollbarAutoHideDelay(value: number); private _scrollbarAutoHideDelay; private _scrollbarAutoHideDelayFrames; private _scrollOffsetUpdateFlag; private forcePaintScrollbar; /** * 滚动边界,修改该属性会导致 relayout,默认 ScrollBounds.Horizontal | ScrollBounds.Vertical */ get scrollBounds(): number; set scrollBounds(value: number); private _scrollBounds; /** * 滚动位置,相当于 DOM 的 scrollLeft / scrollTop */ get scrollOffset(): Point; set scrollOffset(value: Point); private _scrollOffset; _setScrollOffset(value: Point): boolean; enterFrame(): void; _paint(context: PaintingContext, offset: Point): void; private fitIntoScrollBounds; protected ensureScrollOffsetValid(): void; /** * 滚动大小,相当于 scrollWidth, scrollHeight * * 用户可以指定滚动大小,此时子节点的 size 将不起作用 * * 默认使用子节点的 size */ get scrollSize(): Size; set scrollSize(value: Size | undefined); private _scrollSize?; get scrollWidth(): number; get scrollHeight(): number; get scrollLeftMax(): number; get scrollTopMax(): number; get scrollLeft(): number; set scrollLeft(value: number); get scrollTop(): number; set scrollTop(value: number); adoptChild(child: RenderObject): void; private updateChildViewport; protected setSize(value: Size): boolean; performLayout(): void; visitChildren(visitor: Visitor): void; attach(owner: RenderPipeline): void; detach(): void; get repaintBoundary(): boolean; _repaintBoundaryLocked: boolean; hitTestChildren(result: HitTestResult, position: Point): boolean; private hitTestScrollbar; private dispatchScrollEvent; get onScroll(): SyntheticEventListener> | undefined; set onScroll(value: SyntheticEventListener> | undefined); private _onScroll?; }