anchor.diff:      ScrollListener onScrollEnd,
       SnapOffsetCallback snapOffsetCallback,
       this.itemsWrap: false,
  -    this.itemsSnapAlignment: ItemsSnapAlignment.adjacentItem,
  +    this.itemsSnapAlignment: PageableListFlingBehavior.stopAtNextPage,
       this.onPageChanged,
       this.scrollableListPainter,
       this.duration: const Duration(milliseconds: 200),
  
positive.code:     onScroll: onScroll,
      onScrollEnd: onScrollEnd,
      snapOffsetCallback: snapOffsetCallback
    );
  
    /// Whether the first item should be revealed after scrolling past the last item.
    final bool itemsWrap;
  
    /// Controls whether a fling always reveals the adjacent item or whether flings can traverse many items.
    final ItemsSnapAlignment itemsSnapAlignment;
  
    /// Called when the currently visible page changes.
    final ValueChanged<int> onPageChanged;
  
negative.code: 
    ScrollBehavior<double, double> createScrollBehavior() => scrollBehavior;
  
    bool get shouldSnapScrollOffset => config.itemsSnapAlignment == PageableListFlingBehavior.canFlingAcrossMultiplePages;
  
    double snapScrollOffset(double newScrollOffset) {
      final double previousItemOffset = newScrollOffset.floorToDouble();
  