drawDash method

void drawDash(
  1. UiPaint paint,
  2. Canvas uiCanvas
)

Draws a dashed line along the path.

This method manually calculates and draws the dashes and gaps, as Flutter's native dash support can be inconsistent.

Implementation

void drawDash(UiPaint paint, Canvas uiCanvas) {
  List<double> dasharray = paint.getStrokeDasharray()!;
  List<Offsets>? dashed = _dashedPaths[dasharray.join()];
  dashed ??= PathHelper.calculateDashes(_points, dasharray);
  _dashedPaths[dasharray.join()] = dashed;
  for (var offsets in dashed) {
    uiCanvas.drawLine(offsets.start, offsets.end, paint.expose());
  }
}