anchor.diff:                duration: _kFrontLayerSwitchDuration,
                 switchOutCurve: switchOutCurve,
                 switchInCurve: switchInCurve,
  +              layoutBuilder: centerHome ? _centerHomeLayout : _topHomeLayout,
                 child: _category != null
                   ? new _DemosPage(_category)
                   : new _CategoriesPage(
  
positive.code:         child: new LayoutBuilder(
            builder: (BuildContext context, BoxConstraints constraints) {
              final double columnWidth = constraints.biggest.width / columnCount.toDouble();
              final double rowHeight = columnWidth * aspectRatio;
              final int rowCount = (categories.length + columnCount - 1) ~/ columnCount;
  
              // This repaint boundary prevents the inner contents of the front layer
  
negative.code:   AnimationController _controller;
    GalleryDemoCategory _category;
  
    static Widget _topHomeLayout(Widget currentChild, List<Widget> previousChildren) {
      List<Widget> children = previousChildren;
      if (currentChild != null)
        children = children.toList()..add(currentChild);
      return new Stack(
        children: children,
        alignment: Alignment.topCenter,
      );
    }
  
    static const AnimatedSwitcherLayoutBuilder _centerHomeLayout = AnimatedSwitcher.defaultLayoutBuilder;
  
    @override
    void initState() {
      super.initState();
  