Skip to content

Commit 0fa1881

Browse files
committed
Add min/max setters & setRange()
1 parent b792f46 commit 0fa1881

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

lib/src/spin_controller.dart

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import 'package:flutter/foundation.dart';
2424

2525
class SpinController extends ValueNotifier<double> {
2626
SpinController({
27-
required this.min,
28-
required this.max,
27+
required double min,
28+
required double max,
2929
required double value,
3030
this.step = 1,
3131
this.pageStep,
@@ -34,10 +34,13 @@ class SpinController extends ValueNotifier<double> {
3434
this.canChange,
3535
this.beforeChange,
3636
this.afterChange,
37-
}) : super(value);
37+
}) : _min = min,
38+
_max = max,
39+
super(value);
40+
41+
double _min;
42+
double _max;
3843

39-
final double min;
40-
final double max;
4144
final double step;
4245
final double? pageStep;
4346
final int decimals;
@@ -46,6 +49,24 @@ class SpinController extends ValueNotifier<double> {
4649
final VoidCallback? beforeChange;
4750
final VoidCallback? afterChange;
4851

52+
double get min => _min;
53+
set min(double min) {
54+
_min = min;
55+
value = value.clamp(min, max);
56+
}
57+
58+
double get max => _max;
59+
set max(double max) {
60+
_max = max;
61+
value = value.clamp(min, max);
62+
}
63+
64+
void setRange(double min, double max) {
65+
_min = min;
66+
_max = max;
67+
value = value.clamp(min, max);
68+
}
69+
4970
String format(double value) {
5071
return value.toStringAsFixed(decimals).padLeft(digits, '0');
5172
}

0 commit comments

Comments
 (0)