buildHorizontal method
Widget
buildHorizontal(
)
override
Implementation
@override
Widget buildHorizontal() {
return LayoutBuilder(builder: (context, constraints) {
final maxLayoutHeight = constraints.maxHeight;
final segmentSpace = maxLayoutHeight / (tickCount - 1);
final alignStack = switch (crossAxis) {
CrossAxisAlignment.start => Alignment.centerLeft,
CrossAxisAlignment.center => Alignment.center,
_ => Alignment.centerRight,
};
return Stack(
alignment: alignStack,
children: [
Column(
crossAxisAlignment: crossAxis,
mainAxisAlignment: MainAxisAlignment.end,
children: [labelsInViewport.first].map((e) {
final labelText = DrawTickLabel<num>(
label: e,
labelFormatter: measureAxis.labelFormatter,
labelStyle: measureAxis.labelStyle,
);
final labelOffset = Offset(
measureAxis.labelOffset.dx,
measureAxis.labelOffset.dy + segmentSpace / 2,
);
return Transform.translate(
offset: labelOffset,
child: SizedBox(
height: segmentSpace,
child: Align(
alignment: Alignment.center,
child: measureAxis.labelWidget != null
? measureAxis.labelWidget!(e) ?? labelText
: labelText,
),
),
);
}).toList(),
),
Column(
crossAxisAlignment: crossAxis,
mainAxisAlignment: MainAxisAlignment.end,
children: List.generate(tickCount - 1, (index) {
final label = labelsInViewport[index + 1];
final labelText = DrawTickLabel<num>(
label: label,
labelFormatter: measureAxis.labelFormatter,
labelStyle: measureAxis.labelStyle,
);
final labelOffset = Offset(
measureAxis.labelOffset.dx,
measureAxis.labelOffset.dy - segmentSpace / 2,
);
return Transform.translate(
offset: labelOffset,
child: SizedBox(
height: segmentSpace,
child: Align(
alignment: Alignment.center,
child: measureAxis.labelWidget != null
? measureAxis.labelWidget!(label) ?? labelText
: labelText,
),
),
);
}).reversed.toList(),
),
],
);
});
}