From 3ee2f6f7271783557e59886eb0ee3b334aa68f8a Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Wed, 15 Jun 2016 09:11:27 -0700 Subject: [PATCH] Fix the switch to match the Material Design spec. Our track and head were slightly off in size. These now exactly match the sizes in https://material.google.com/components/selection-controls.html#selection-controls-switch We took the liberty of assuming the head overlaps the edge of the track by 2 pixels (instead of the head and the track ending at the same point) which the provided designs were conflicted about. Huge thanks to @DaveShuckerow for noticing this issue! @abarth --- packages/flutter/lib/src/material/switch.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter/lib/src/material/switch.dart b/packages/flutter/lib/src/material/switch.dart index 3b5ee8a7ac6..10ca3153e7e 100644 --- a/packages/flutter/lib/src/material/switch.dart +++ b/packages/flutter/lib/src/material/switch.dart @@ -158,7 +158,7 @@ class _SwitchRenderObjectWidget extends LeafRenderObjectWidget { } const double _kTrackHeight = 14.0; -const double _kTrackWidth = 29.0; +const double _kTrackWidth = 33.0; const double _kTrackRadius = _kTrackHeight / 2.0; const double _kThumbRadius = 10.0; const double _kSwitchWidth = _kTrackWidth - 2 * _kTrackRadius + 2 * kRadialReactionRadius; @@ -355,7 +355,7 @@ class _RenderSwitch extends RenderToggleable { } // The thumb contracts slightly during the animation - double inset = 2.0 - (currentPosition - 0.5).abs() * 2.0; + double inset = 1.0 - (currentPosition - 0.5).abs() * 2.0; double radius = _kThumbRadius - inset; Rect thumbRect = new Rect.fromLTRB(thumbPosition.x + offset.dx - radius, thumbPosition.y + offset.dy - radius,