anchor.diff:      if (_itemHeight == null)
         new Future.microtask(_measureHeights);
   
  +    Matrix4 transform = new Matrix4.identity();
  +
       if (_height > 0.0 && _itemHeight != null) {
         if (scrollOffset < 0.0) {
           double visibleHeight = _height + scrollOffset;
           drawCount = (visibleHeight / _itemHeight).round() + 1;
  -        transformStyle =
  -          'transform: translateY(${(-scrollOffset).toStringAsFixed(2)}px)';
  +        transform.translate(0.0, -scrollOffset);
         } else {
           drawCount = (_height / _itemHeight).ceil() + 1;
           double alignmentDelta = -scrollOffset % _itemHeight;
  
positive.code:   }
  
    void _measureHeights() {
      trace('FixedHeightScrollable::_measureHeights', () {
        if (_itemHeight != null)
          return;
        var root = getRoot();
        if (root == null)
          return;
        var item = root.firstChild.firstChild;
        if (item == null)
          return;
        setState(() {
          _height = root.height;
          assert(_height > 0);
          _itemHeight = item.height;
          assert(_itemHeight > 0);
          scrollBehavior.containerHeight = _height;
          scrollBehavior.contentsHeight = _itemHeight * _itemCount;
        });
      });
    }
  
  
negative.code: // found in the LICENSE file.
  
  import '../animation/scroll_behavior.dart';
  import '../fn2.dart';
  import 'dart:async';
  import 'dart:math' as math;
  import 'package:vector_math/vector_math.dart';
  import 'scrollable.dart';
  
  abstract class FixedHeightScrollable extends Scrollable {
    FixedHeightScrollable({ Object key }) : super(key: key);
  
    ScrollBehavior createScrollBehavior() => new OverscrollBehavior();
    OverscrollBehavior get scrollBehavior => super.scrollBehavior as OverscrollBehavior;
  