123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import 'package:fitness_dashboard_ui/const/constant.dart';
- import 'package:fitness_dashboard_ui/data/line_chart_data.dart';
- import 'package:fitness_dashboard_ui/widgets/custom_card_widget.dart';
- import 'package:fl_chart/fl_chart.dart';
- import 'package:flutter/material.dart';
- class LineChartCard extends StatelessWidget {
- const LineChartCard({super.key});
- @override
- Widget build(BuildContext context) {
- final data = LineData();
- return CustomCard(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- "Steps Overview",
- style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
- ),
- const SizedBox(height: 20),
- AspectRatio(
- aspectRatio: 16 / 6,
- child: LineChart(
- LineChartData(
- lineTouchData: LineTouchData(
- handleBuiltInTouches: true,
- ),
- gridData: FlGridData(show: false),
- titlesData: FlTitlesData(
- rightTitles: AxisTitles(
- sideTitles: SideTitles(showTitles: false),
- ),
- topTitles: AxisTitles(
- sideTitles: SideTitles(showTitles: false),
- ),
- bottomTitles: AxisTitles(
- sideTitles: SideTitles(
- showTitles: true,
- getTitlesWidget: (double value, TitleMeta meta) {
- return data.bottomTitle[value.toInt()] != null
- ? SideTitleWidget(
- axisSide: meta.axisSide,
- child: Text(
- data.bottomTitle[value.toInt()].toString(),
- style: TextStyle(
- fontSize: 12, color: Colors.grey[400])),
- )
- : const SizedBox();
- },
- ),
- ),
- leftTitles: AxisTitles(
- sideTitles: SideTitles(
- getTitlesWidget: (double value, TitleMeta meta) {
- return data.leftTitle[value.toInt()] != null
- ? Text(data.leftTitle[value.toInt()].toString(),
- style: TextStyle(
- fontSize: 12, color: Colors.grey[400]))
- : const SizedBox();
- },
- showTitles: true,
- interval: 1,
- reservedSize: 40,
- ),
- ),
- ),
- borderData: FlBorderData(show: false),
- lineBarsData: [
- LineChartBarData(
- color: selectionColor,
- barWidth: 2.5,
- belowBarData: BarAreaData(
- gradient: LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [
- selectionColor.withOpacity(0.5),
- Colors.transparent
- ],
- ),
- show: true,
- ),
- dotData: FlDotData(show: false),
- spots: data.spots,
- )
- ],
- minX: 0,
- maxX: 120,
- maxY: 105,
- minY: -5,
- ),
- ),
- ),
- ],
- ),
- );
- }
- }
|