anchor.diff:      });
     }
   
  +  double get _leadingPadding {
  +    if (scrollDirection == ScrollDirection.vertical)
  +      return padding.top;
  +    return padding.left;
  +  }
  +
  +  double get _trailingPadding {
  +    if (scrollDirection == ScrollDirection.vertical)
  +      return padding.bottom;
  +    return padding.right;
  +  }
  +
  +  EdgeDims get _crossAxisPadding {
  +    if (padding == null)
  +      return null;
  +    if (scrollDirection == ScrollDirection.vertical)
  +      return new EdgeDims.only(left: padding.left, right: padding.right);
  +    return new EdgeDims.only(top: padding.top, bottom: padding.bottom);
  +  }
  +
     void _updateContentsExtent() {
       double contentsExtent = itemExtent * itemCount;
  -    if (padding != null) {
  -      if (scrollDirection == ScrollDirection.vertical)
  -        contentsExtent += padding.top + padding.bottom;
  -      else
  -        contentsExtent += padding.left + padding.right;
  -    }
  +    if (padding != null)
  +      contentsExtent += _leadingPadding + _trailingPadding;
       scrollBehavior.contentsSize = contentsExtent;
     }
   
  
positive.code:       _updateScrollOffset();
      }
  
      int itemShowIndex = 0;
      int itemShowCount = 0;
      Offset viewportOffset = Offset.zero;
      if (_containerExtent != null && _containerExtent > 0.0) {
        if (scrollOffset < 0.0) {
          double visibleHeight = _containerExtent + scrollOffset;
          itemShowCount = (visibleHeight / itemExtent).round() + 1;
          viewportOffset = _toOffset(scrollOffset);
        } else {
          itemShowCount = (_containerExtent / itemExtent).ceil();
          double alignmentDelta = -scrollOffset % itemExtent;
          double drawStart;
          if (alignmentDelta != 0.0) {
            alignmentDelta -= itemExtent;
            itemShowCount += 1;
            drawStart = scrollOffset + alignmentDelta;
            viewportOffset = _toOffset(-alignmentDelta);
          } else {
            drawStart = scrollOffset;
          }
          itemShowIndex = math.max(0, (drawStart / itemExtent).floor());
        }
  
negative.code:         scrollDirection: scrollDirection,
          scrollOffset: viewportOffset,
          child: new Container(
            padding: _crossAxisPadding,
            child: new Block(items, direction: blockDirection)
          )
        )
  