buildChart method
Implementation
@override
Widget buildChart() {
// Define default theme data
const defaultThemeData = ChartThemeData(
backgroundColor: Colors.white,
labelStyle: TextStyle(color: Colors.black, fontSize: 16),
valueStyle: TextStyle(
fontSize: 24, fontWeight: FontWeight.bold, color: Colors.blue),
unitStyle: TextStyle(color: Colors.grey, fontSize: 14),
);
TextStyle labelStyle = themeData?.labelStyle ?? defaultThemeData.labelStyle;
TextStyle valueStyle = themeData?.valueStyle ?? defaultThemeData.valueStyle;
return ChartCard(
themeData: themeData ?? defaultThemeData,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
FittedBox(fit: BoxFit.contain, child: Text(label, style: labelStyle)),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(totalMilestones, (index) {
return Icon(
index < completedMilestones ? Icons.check_circle : Icons.circle,
color: index < completedMilestones ? Colors.green : Colors.grey,
size: 24,
);
}),
),
const Spacer(),
FittedBox(
fit: BoxFit.contain,
child: Text('$completedMilestones/$totalMilestones Completed',
style: valueStyle)),
],
),
);
}