draw method

  1. @override
void draw(
  1. Canvas canvas,
  2. double space,
  3. double size,
  4. double radius,
)
override

Implementation

@override
void draw(Canvas canvas, double space, double size, double radius) {
  final progress = page - index;
  final distance = size + space;
  final start = index * (size + space);

  if (progress > 0.5) {
    final right = start + size + distance;
    //progress=>0.5-1.0
    //left:0.0=>distance

    final left = index * distance + distance * (progress - 0.5) * 2;
    canvas.drawRRect(
        RRect.fromLTRBR(left, 0.0, right, size, Radius.circular(radius)),
        _paint);
  } else {
    final right = start + size + distance * progress * 2;

    canvas.drawRRect(
        RRect.fromLTRBR(start, 0.0, right, size, Radius.circular(radius)),
        _paint);
  }
}