Unverified Commit b3b9b221 authored by Greg Spencer's avatar Greg Spencer Committed by GitHub

Updating checkmark animation (#15850)

parent ce283781
...@@ -253,17 +253,24 @@ class _RenderCheckbox extends RenderToggleable { ...@@ -253,17 +253,24 @@ class _RenderCheckbox extends RenderToggleable {
void _drawCheck(Canvas canvas, Offset origin, double t, Paint paint) { void _drawCheck(Canvas canvas, Offset origin, double t, Paint paint) {
assert(t >= 0.0 && t <= 1.0); assert(t >= 0.0 && t <= 1.0);
// As t goes from 0.0 to 1.0, animate the two checkmark strokes from the // As t goes from 0.0 to 1.0, animate the two check mark strokes from the
// mid point outwards. // short side to the long side.
final Path path = new Path(); final Path path = new Path();
const Offset start = const Offset(_kEdgeSize * 0.15, _kEdgeSize * 0.45); const Offset start = const Offset(_kEdgeSize * 0.15, _kEdgeSize * 0.45);
const Offset mid = const Offset(_kEdgeSize * 0.4, _kEdgeSize * 0.7); const Offset mid = const Offset(_kEdgeSize * 0.4, _kEdgeSize * 0.7);
const Offset end = const Offset(_kEdgeSize * 0.85, _kEdgeSize * 0.25); const Offset end = const Offset(_kEdgeSize * 0.85, _kEdgeSize * 0.25);
final Offset drawStart = Offset.lerp(start, mid, 1.0 - t); if (t < 0.5) {
final Offset drawEnd = Offset.lerp(mid, end, t); final double strokeT = t * 2.0;
path.moveTo(origin.dx + drawStart.dx, origin.dy + drawStart.dy); final Offset drawMid = Offset.lerp(start, mid, strokeT);
path.lineTo(origin.dx + mid.dx, origin.dy + mid.dy); path.moveTo(origin.dx + start.dx, origin.dy + start.dy);
path.lineTo(origin.dx + drawEnd.dx, origin.dy + drawEnd.dy); path.lineTo(origin.dx + drawMid.dx, origin.dy + drawMid.dy);
} else {
final double strokeT = (t - 0.5) * 2.0;
final Offset drawEnd = Offset.lerp(mid, end, strokeT);
path.moveTo(origin.dx + start.dx, origin.dy + start.dy);
path.lineTo(origin.dx + mid.dx, origin.dy + mid.dy);
path.lineTo(origin.dx + drawEnd.dx, origin.dy + drawEnd.dy);
}
canvas.drawPath(path, paint); canvas.drawPath(path, paint);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment