anchor.diff:  const double _kTimePickerHeaderLandscapeWidth = 168.0;
   
   const double _kTimePickerWidthPortrait = 328.0;
  -const double _kTimePickerWidthLanscape = 512.0;
  +const double _kTimePickerWidthLandscape = 512.0;
   
   const double _kTimePickerHeightPortrait = 484.0;
  -const double _kTimePickerHeightLanscape = 304.0;
  +const double _kTimePickerHeightLandscape = 304.0;
  +
  +const double _kPeriodGap = 8.0;
  +
  +enum _TimePickerHeaderId {
  +  hour,
  +  colon,
  +  minute,
  +  period, // AM/PM picker
  +}
  +
  +class _TimePickerHeaderLayout extends MultiChildLayoutDelegate {
  +  _TimePickerHeaderLayout(this.orientation);
  +
  +  final Orientation orientation;
  +
  +  @override
  +  void performLayout(Size size) {
  +    final BoxConstraints constraints = new BoxConstraints.loose(size);
  +    final Size hourSize = layoutChild(_TimePickerHeaderId.hour, constraints);
  +    final Size colonSize = layoutChild(_TimePickerHeaderId.colon, constraints);
  +    final Size minuteSize = layoutChild(_TimePickerHeaderId.minute, constraints);
  +    final Size periodSize = layoutChild(_TimePickerHeaderId.period, constraints);
  +
  +    switch (orientation) {
  +      // 11:57--period
  +      //
  +      // The colon is centered horizontally, the entire layout is centered vertically.
  +      // The "--" is a _kPeriodGap horizontal gap.
  +      case Orientation.portrait:
  +        final double width = colonSize.width / 2.0 + minuteSize.width + _kPeriodGap + periodSize.width;
  +        final double right = math.max(0.0, size.width / 2.0 - width);
  +
  +        double x = size.width - right - periodSize.width;
  +        positionChild(_TimePickerHeaderId.period, new Offset(x, (size.height - periodSize.height) / 2.0));
  +
  +        x -= minuteSize.width + _kPeriodGap;
  +        positionChild(_TimePickerHeaderId.minute, new Offset(x, (size.height - minuteSize.height) / 2.0));
  +
  +        x -= colonSize.width;
  +        positionChild(_TimePickerHeaderId.colon, new Offset(x, (size.height - colonSize.height) / 2.0));
  +
  +        x -= hourSize.width;
  +        positionChild(_TimePickerHeaderId.hour, new Offset(x, (size.height - hourSize.height) / 2.0));
  +      break;
  +
  +      // 11:57
  +      //  --
  +      // period
  +      //
  +      // The colon is centered horizontally, the entire layout is centered vertically.
  +      // The "--" is a _kPeriodGap vertical gap.
  +      case Orientation.landscape:
  +        final double width = colonSize.width / 2.0 + minuteSize.width;
  +        final double offset = math.max(0.0, size.width / 2.0 - width);
  +        final double timeHeight = math.max(hourSize.height, colonSize.height);
  +        final double height = timeHeight + _kPeriodGap + periodSize.height;
  +        final double timeCenter = (size.height - height) / 2.0 + timeHeight / 2.0;
  +
  +        double x = size.width - offset - minuteSize.width;
  +        positionChild(_TimePickerHeaderId.minute, new Offset(x, timeCenter - minuteSize.height / 2.0));
  +
  +        x -= colonSize.width;
  +        positionChild(_TimePickerHeaderId.colon, new Offset(x, timeCenter - colonSize.height / 2.0));
  +
  +        x -= hourSize.width;
  +        positionChild(_TimePickerHeaderId.hour, new Offset(x, timeCenter - hourSize.height / 2.0));
  +
  +        x = (size.width - periodSize.width) / 2.0;
  +        positionChild(_TimePickerHeaderId.period, new Offset(x, timeCenter + timeHeight / 2.0 + _kPeriodGap));
  +        break;
  +    }
  +  }
  +
  +  @override
  +  bool shouldRelayout(_TimePickerHeaderLayout oldDelegate) => orientation != oldDelegate.orientation;
  +}
  +
   
   // TODO(ianh): Localize!
   class _TimePickerHeader extends StatelessWidget {
  
positive.code:       child: new Text(selectedTime.minuteLabel, style: minuteStyle),
      );
  
      assert(orientation != null);
      switch (orientation) {
        case Orientation.portrait:
          return new Container(
            height: _kTimePickerHeaderPortraitHeight,
            padding: const EdgeInsets.symmetric(horizontal: 24.0),
            decoration: new BoxDecoration(backgroundColor: backgroundColor),
            child: new Row(
              children: <Widget>[
                new Flexible(child: hour),
                new Text(':', style: inactiveStyle),
                new Flexible(
                  child: new Row(
                    children: <Widget>[
                      minute,
                      const SizedBox(width: 8.0, height: 0.0),  // Horizontal spacer
                      dayPeriodPicker,
                    ]
                  )
                )
              ]
            )
          );
        case Orientation.landscape:
          return new Container(
            width: _kTimePickerHeaderLandscapeWidth,
            padding: const EdgeInsets.symmetric(horizontal: 16.0),
            decoration: new BoxDecoration(backgroundColor: backgroundColor),
            child: new Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                new Row(
                  children: <Widget>[
                    new Flexible(child: hour),
                    new Text(':', style: inactiveStyle),
                    new Flexible(child: minute),
                  ],
                ),
                const SizedBox(width: 0.0, height: 8.0),  // Vertical spacer
                dayPeriodPicker,
              ]
            )
          );
      }
      return null;
    }
  }
  
  
negative.code:               );
              case Orientation.landscape:
                return new SizedBox(
                  width: _kTimePickerWidthLandscape,
                  height: _kTimePickerHeightLandscape,
                  child: new Row(
                    mainAxisSize: MainAxisSize.min,
                    crossAxisAlignment: CrossAxisAlignment.stretch,
  