paint method

  1. @override
dynamic paint(
  1. PrinterCanvas canvas,
  2. PrinterOffset offset
)
override

渲染

Implementation

@override
paint(PrinterCanvas canvas, PrinterOffset offset) {
  List? data = this.dataSource!.execExpressionToValue(binding);
  if (data == null) {
    return;
  }
  double height = 0;

  for (int y = 0; y < data.length; y++) {
    final rowData = data[y];

    var rowDataSource = RowDataSource(rowData, this.dataSource!, y);

    if (condition != null && condition != '') {
      var value = rowDataSource.execExpressionToValue(condition!);
      if (value != true) {
        continue;
      }
    }
    double rowHeight = 0;
    for (var child in children) {
      if (child.isRender) {
        child.setDataSource(rowDataSource);
        child.performLayout(_constraints!, canvas);
        child.paint(canvas,
            offset.translate(actualOffset!.x! + 0, actualOffset!.y! + height));
        rowHeight = Math.max(child.actualOffset!.y! + child.actualSize!.height!, rowHeight);
      }
    }
    if (size!.height!.isFinite) {
      height += size!.height!;
    } else {
      height += rowHeight;
    }
  }
}