activity_details_card.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'package:fitness_dashboard_ui/data/health_details.dart';
  2. import 'package:fitness_dashboard_ui/util/responsive.dart';
  3. import 'package:fitness_dashboard_ui/widgets/custom_card_widget.dart';
  4. import 'package:flutter/material.dart';
  5. class ActivityDetailsCard extends StatelessWidget {
  6. const ActivityDetailsCard({super.key});
  7. @override
  8. Widget build(BuildContext context) {
  9. final healthDetails = HealthDetails();
  10. return GridView.builder(
  11. itemCount: healthDetails.healthData.length,
  12. shrinkWrap: true,
  13. physics: const ScrollPhysics(),
  14. gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  15. crossAxisCount: Responsive.isMobile(context) ? 2 : 4,
  16. crossAxisSpacing: Responsive.isMobile(context) ? 12 : 15,
  17. mainAxisSpacing: 12.0,
  18. ),
  19. itemBuilder: (context, index) => CustomCard(
  20. child: Column(
  21. mainAxisAlignment: MainAxisAlignment.center,
  22. crossAxisAlignment: CrossAxisAlignment.center,
  23. children: [
  24. Image.asset(
  25. healthDetails.healthData[index].icon,
  26. width: 30,
  27. height: 30,
  28. ),
  29. Padding(
  30. padding: const EdgeInsets.only(top: 15, bottom: 4),
  31. child: Text(
  32. healthDetails.healthData[index].value,
  33. style: const TextStyle(
  34. fontSize: 18,
  35. color: Colors.white,
  36. fontWeight: FontWeight.w600,
  37. ),
  38. ),
  39. ),
  40. Text(
  41. healthDetails.healthData[index].title,
  42. style: const TextStyle(
  43. fontSize: 13,
  44. color: Colors.grey,
  45. fontWeight: FontWeight.normal,
  46. ),
  47. ),
  48. ],
  49. ),
  50. ),
  51. );
  52. }
  53. }