wiki:Scrolling

Version 3 (modified by Simon Fraser, 3 years ago) (diff)

--

Scrolling

The scrolling architecture is unexpectedly complex, because it's feature-rich, and required to provide smooth scrolling independent of main thread work in as many situations as possible.

Scrollable areas

The ScrollableArea base class represents a region that is scrollable. It's the base class for ScrollView, RenderLayer (for overflow scroll) and for list rendering.

ScrollableArea provides some basic geometry info and functionality for scrolling snapping(?). It's only usable from the main thread.

Scrolling features

Scrolling and RTL

Rubber-banding ("bouncing")

Latching

Scroll snapping

Touch-action

Coordinated scrolling

Non-fast-scrollable regions

ScrollingCoordinator

The scrolling trees

ScrollingStateTree

Tree structure, frame boundaries

Node unparenting and reparenting

ScrollingTree