drawBottom method

void drawBottom(
  1. Canvas canvas,
  2. Size size,
  3. Paint paint
)

Implementation

void drawBottom(Canvas canvas, Size size, Paint paint) {
  RRect rect =
      RRect.fromLTRBR(0, 0, size.width, size.height - arrowSize!, radius!);
  Path path = Path()..addRRect(rect.shift(Offset(elevation! / 2, 0)));
  canvas.drawShadow(path, Colors.grey.shade50, elevation!, true);
  canvas.drawRRect(
    RRect.fromLTRBR(0, 0, size.width, size.height - arrowSize!, radius!),
    paint,
  );

  double offset = arrowSize! + DEFAULT_OFFSET + arrowOffset!;
  if (arrowAlignment == ArrowAlignment.center) {
    offset = size.width / 2 + arrowOffset!;
  }
  if (arrowAlignment == ArrowAlignment.end) {
    offset = size.width - arrowSize! - DEFAULT_OFFSET - arrowOffset!;
  }

  var dy = size.height - arrowSize!;
  path = Path()
    ..moveTo(offset, size.height)
    ..lineTo(offset - arrowSize! / 3 * 2, dy)
    ..lineTo(offset + arrowSize! / 3 * 2, dy);
  canvas.drawPath(path, paint);
}