ruler_picker.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_ruler_picker/flutter_ruler_picker.dart' as r;
  3. import 'package:get/get.dart';
  4. import 'package:trackoffical_app/screen.dart';
  5. typedef ValueChangedCallback = void Function(int value);
  6. class RulerPicker extends StatelessWidget {
  7. final ValueChangedCallback onValueChange;
  8. final int beginValue;
  9. final int endValue;
  10. final int initValue;
  11. final String Function(int index, int rulerScaleValue)? onBuildRulerScaleText;
  12. const RulerPicker({
  13. super.key,
  14. required this.beginValue,
  15. required this.endValue,
  16. required this.onValueChange,
  17. this.onBuildRulerScaleText,
  18. this.initValue = 0,
  19. });
  20. @override
  21. Widget build(BuildContext context) {
  22. final scaleBackgroundColor = context.theme.colorScheme.primary.withAlpha(10);
  23. final barsColor = scaleBackgroundColor.withAlpha(200);
  24. final scaleLineColor = context.theme.colorScheme.primary;
  25. return r.RulerPicker(
  26. beginValue: beginValue,
  27. endValue: endValue,
  28. initValue: initValue,
  29. onValueChange: onValueChange,
  30. onBuildRulerScalueText: onBuildRulerScaleText,
  31. scaleLineStyleList: [
  32. r.ScaleLineStyle(
  33. color: scaleLineColor, width: 1.5, height: 30, scale: 0),
  34. r.ScaleLineStyle(
  35. color: scaleLineColor, width: 1, height: 25, scale: 5),
  36. r.ScaleLineStyle(
  37. color: scaleLineColor, width: 1, height: 15, scale: -1)
  38. ],
  39. rulerBackgroundColor: scaleBackgroundColor,
  40. width: MediaQuery.of(context).size.width,
  41. height: 15.0.wp,
  42. rulerMarginTop: 2,
  43. marker: Container(
  44. width: 8,
  45. height: 38,
  46. decoration: BoxDecoration(
  47. color: barsColor,
  48. borderRadius: BorderRadius.circular(5))),
  49. );
  50. }
  51. }