anchor.diff:      _selection = selection;
       if (_selection != null) {
         _selection.registerPerformanceListener(this);
  -      _initItemsAndScrollOffset();
  +      _updateItemsAndScrollBehavior();
       }
     }
   
  
positive.code:     final int previousSelectedIndex = _selection.previousIndex;
  
      if (selectedIndex < previousSelectedIndex) {
        _updateItems(selectedIndex, previousSelectedIndex);
        _scrollDirection = AnimationDirection.reverse;
      } else {
        _updateItems(previousSelectedIndex, selectedIndex);
        _scrollDirection = AnimationDirection.forward;
      }
  
  
negative.code:     _initSelection(TabBarSelection.of(context));
    }
  
    void didUpdateConfig(TabBarView oldConfig) {
      super.didUpdateConfig(oldConfig);
      if (_selection != null && config.children != oldConfig.children)
        _updateItemsForSelectedIndex(_selection.index);
    }
  
    void dispose() {
      _selection?.unregisterPerformanceListener(this);
      super.dispose();
  