anchor.diff:          visibleIndices.add(index);
         }
   
  -      if(geometry.trailingScrollOffset >= viewportOffset.trailingScrollOffset){
  +      if (geometry.trailingScrollOffset >=
  +          viewportOffset.trailingScrollOffset) {
           int nextPageIndex = viewportOffset.pageIndex + 1;
  -        var nextViewportOffset = new _ViewportOffsets(mainAxisOffsets, (nextPageIndex + 1) * pageSize, nextPageIndex, index);
  -          viewportOffsets[nextPageIndex] = nextViewportOffset;
  -          viewportOffset = nextViewportOffset;
  +        var nextViewportOffset = new _ViewportOffsets(mainAxisOffsets,
  +            (nextPageIndex + 1) * pageSize, nextPageIndex, index);
  +        viewportOffsets[nextPageIndex] = nextViewportOffset;
  +        viewportOffset = nextViewportOffset;
         }
   
         final double endOffset =
  
positive.code: 
  class _ViewportOffsets {
    _ViewportOffsets(
    List<double> mainAxisOffsets,
        this.trailingScrollOffset,
        [
        this.pageIndex = 0,
        this.firstChildIndex = 0,
      ]
    ) : this.mainAxisOffsets = new List.from(mainAxisOffsets);
  
    final int pageIndex;
  
  
negative.code:     _gridDelegate = value;
    }
  
    HashMap<double, SplayTreeMap<int, _ViewportOffsets>>
        _pageSizeToViewportOffsets;
  
    @override
    void performLayout() {
  