24 Widget
build(BuildContext context) {
30 mainAxisAlignment: MainAxisAlignment.spaceBetween,
34 style: Theme.of(context).textTheme.displaySmall?.copyWith(
35 fontWeight: FontWeight.bold,
40 const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
41 decoration: BoxDecoration(
43 Theme.of(context).colorScheme.secondary.withOpacity(0.11),
44 borderRadius: BorderRadius.circular(20),
50 style: Theme.of(context).textTheme.bodySmall?.copyWith(
54 SizedBox(width: 3.sp),
56 Icons.keyboard_arrow_down,
64 SizedBox(height: 20.sp),
69 barTouchData: BarTouchData(
70 touchTooltipData: BarTouchTooltipData(
71 getTooltipColor: (group) =>
72 Theme.of(context).colorScheme.secondary,
73 tooltipPadding:
const EdgeInsets.all(8),
75 getTooltipItem: (group, groupIndex, rod, rodIndex) {
76 return BarTooltipItem(
77 '${widget.data[groupIndex].value.toStringAsFixed(0)} kg',
79 color: Theme.of(context).colorScheme.onPrimary,
84 touchCallback: (FlTouchEvent event, barTouchResponse) {
86 if (event is! FlTapUpEvent &&
87 event is! FlPanEndEvent &&
88 event is! FlLongPressEnd) {
90 barTouchResponse?.spot?.touchedBarGroupIndex;
97 titlesData: FlTitlesData(
100 AxisTitles(sideTitles: SideTitles(showTitles:
false)),
102 AxisTitles(sideTitles: SideTitles(showTitles:
false)),
103 bottomTitles: AxisTitles(
104 sideTitles: SideTitles(
106 getTitlesWidget: (
value, meta) {
108 padding:
const EdgeInsets.only(top: 8.0),
110 widget.data[
value.toInt()].month,
112 Theme.of(context).textTheme.bodySmall?.copyWith(
120 leftTitles:
const AxisTitles(
121 sideTitles: SideTitles(
126 borderData: FlBorderData(show: false),
127 gridData: FlGridData(
129 drawVerticalLine: false,
130 horizontalInterval: 5000,
131 getDrawingHorizontalLine: (
value) {
133 color: Theme.of(context).hintColor.withOpacity(0.2),
139 barGroups: widget.data.asMap().entries.map((entry) {
140 final index = entry.key;
141 final data = entry.value;
142 return BarChartGroupData(
147 color: touchedIndex == index
148 ? Theme.of(context).colorScheme.secondary
149 : Theme.of(context).colorScheme.primary,
151 borderRadius: const BorderRadius.only(
152 topLeft: Radius.circular(4),
153 topRight: Radius.circular(4),