drawVertical method
Widget
drawVertical(
)
override
Implementation
@override
Widget drawVertical() {
return LayoutBuilder(
builder: (context, constraints) {
final maxLayoutWidth = constraints.maxWidth;
final maxLayoutHeight = constraints.maxHeight;
final segmentWidth = maxLayoutHeight / domain.count;
final rectWidth =
configSeries.barWidth ?? maxLayoutHeight / (domain.count + 1);
return SizedBox(
width: maxLayoutWidth,
height: maxLayoutHeight,
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: List.generate(domain.count, (index) {
final item = data[domain.initialViewportIndex + index];
if (item.measure == null ||
item.measure == measure.viewport.start) {
return SizedBox(height: segmentWidth);
}
final right = (measure.viewport.end - item.measure!) /
measure.viewportRange *
maxLayoutWidth;
final left = (0 - measure.viewport.start) /
measure.viewportRange *
maxLayoutWidth;
final (
fillColor,
fillGradient,
strokeWidth,
strokeColor,
strokeGradient,
tooltipSpec,
labelSpec,
backgroundSpec,
borderRadius,
labelPosition,
rect,
) = configSeries.draw(item, index);
final barItem = Row(
children: [
if (left > 0)
SizedBox(
width: left,
child: labelPosition == LabelPosition.outsideStart
? labelSpec?.build()
: null,
),
Expanded(child: rect),
if (right > 0)
SizedBox(
width: right,
child: labelPosition == LabelPosition.outsideEnd
? labelSpec?.build()
: null,
),
],
);
return SizedBox(
height: segmentWidth,
child: Center(
child: SizedBox(
height: rectWidth,
child: backgroundSpec?.build(barItem) ?? barItem,
),
),
);
}),
),
);
},
);
}