paint method
渲染
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;
}
}
}