createScrollPosition method

  1. @override
ScrollPosition createScrollPosition(
  1. ScrollPhysics physics,
  2. ScrollContext context,
  3. ScrollPosition? oldPosition
)
override

Creates a ScrollPosition for use by a Scrollable widget.

Subclasses can override this function to customize the ScrollPosition used by the scrollable widgets they control. For example, PageController overrides this function to return a page-oriented scroll position subclass that keeps the same page visible when the scrollable widget resizes.

By default, returns a ScrollPositionWithSingleContext.

The arguments are generally passed to the ScrollPosition being created:

Implementation

@override
ScrollPosition createScrollPosition(
  ScrollPhysics physics,
  ScrollContext context,
  ScrollPosition? oldPosition,
) {
  // Mac 可以借助第三方软件实现平滑滚动(例如 Mos)
  if (ElPlatform.isMacOS == false) {
    return _ScrollPosition(
      physics: physics,
      context: context,
      initialPixels: initialScrollOffset,
      keepScrollOffset: keepScrollOffset,
      oldPosition: oldPosition,
      debugLabel: debugLabel,
    );
  } else {
    return super.createScrollPosition(physics, context, oldPosition);
  }
}