side_bar.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import 'package:flutter/material.dart';
  2. class SideBar extends StatelessWidget {
  3. final String title;
  4. final String value;
  5. final String unit;
  6. final Function? onTap;
  7. final bool? hasDevice;
  8. const SideBar({
  9. super.key,
  10. required this.title,
  11. required this.value,
  12. required this.unit,
  13. this.onTap,
  14. this.hasDevice = false,
  15. });
  16. @override
  17. Widget build(BuildContext context) {
  18. var padding = const EdgeInsets.only(
  19. right: 30,
  20. left: 40,
  21. );
  22. return Container(
  23. margin: hasDevice!
  24. ? const EdgeInsets.only(top: 60)
  25. : const EdgeInsets.only(top: 10),
  26. child: InkWell(
  27. onTap: () => onTap?.call(),
  28. child: Container(
  29. margin: const EdgeInsets.only(top: 10),
  30. padding: const EdgeInsets.symmetric(vertical: 10),
  31. child: Row(
  32. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  33. crossAxisAlignment: CrossAxisAlignment.start,
  34. children: [
  35. Container(
  36. height: 90,
  37. alignment: Alignment.center,
  38. padding: padding,
  39. child: Text(
  40. title,
  41. style: const TextStyle(
  42. fontSize: 25,
  43. ),
  44. ),
  45. ),
  46. Container(
  47. alignment: Alignment.bottomRight,
  48. padding: padding,
  49. child: FittedBox(
  50. child: Row(
  51. mainAxisAlignment: MainAxisAlignment.end,
  52. crossAxisAlignment: CrossAxisAlignment.center,
  53. children: [
  54. Text(
  55. value,
  56. style: const TextStyle(
  57. fontSize: 60,
  58. color: Colors.black,
  59. ),
  60. ),
  61. Text(
  62. " $unit",
  63. style: const TextStyle(fontSize: 25),
  64. )
  65. ],
  66. ),
  67. ),
  68. ),
  69. ],
  70. ),
  71. ),
  72. ),
  73. );
  74. }
  75. }