anchor.diff:        scrollTo(0.0);
       } else if (selectedIndex == config.items.length - 1) {
         _itemIndices = <int>[selectedIndex - 1, selectedIndex];
  -      scrollTo(config.itemExtent);
  +      scrollTo(1.0);
       } else {
         _itemIndices = <int>[selectedIndex - 1, selectedIndex, selectedIndex + 1];
  -      scrollTo(config.itemExtent);
  +      scrollTo(1.0);
       }
     }
   
  
positive.code: const double _kMaxTabWidth = 264.0;
  const EdgeDims _kTabLabelPadding = const EdgeDims.symmetric(horizontal: 12.0);
  const double _kTabBarScrollDrag = 0.025;
  const Duration _kTabBarScroll = const Duration(milliseconds: 200);
  
  class _TabBarParentData extends ContainerBoxParentDataMixin<RenderBox> { }
  
  
negative.code: 
    void _handleProgressChange() {
      if (_scrollDirection == AnimationDirection.forward)
        scrollTo(_performance.progress);
      else
        scrollTo(1.0 - _performance.progress);
    }
  
    int get itemCount => _itemIndices.length;
  