现在我用这种方法取3个输入(A,B和C)
Slider(
value: A,
min: 0,
max: 100,
divisions: 100,
label: 'A',
onChanged: (value) {
setState(
() {
A = value.toInt();
},
);
},
),
我对每个输入都使用了不同的滑块,但我的任务是在饼图中取3个输入(用户可以通过拖动markercourser来设置3个值),并且3个输入的组合应该是100,但我没有找到任何像这样的部件,请给我建议任何解决方案。
也许是 范围滑块 可以帮助。这是一个滑块,但有两个拇指。它可以做到这一点,但我不认为它可以为第一个范围(0到第一个拇指)和最后一个范围(第二个拇指到100)有一个明显的颜色。
class Sliders extends StatefulWidget {
@override
_SlidersState createState() => _SlidersState();
}
class _SlidersState extends State<Sliders> {
double start = 0.0;
double end = 0.0;
double a = 0.0;
double b = 0.0;
double c = 0.0;
@override
Widget build(BuildContext context) {
return Column(
children: [
RangeSlider(
values: RangeValues(start, end),
onChanged: _handleOnChange,
min: 0.0,
max: 100.0,
),
Text("A: $a"),
Text("B: $b"),
Text("C: $c"),
],
);
}
void _handleOnChange(RangeValues values) {
final start = values.start;
final end = values.end;
final a = start;
final b = end - start;
final c = 100.0 - end;
setState(() {
this.start = start;
this.end = end;
this.a = a;
this.b = b;
this.c = c;
});
}
}