Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在颤振组合中获取3个输入值时出现问题_Flutter_Dart_Flutter Layout_Flutter Animation - Fatal编程技术网

Flutter 在颤振组合中获取3个输入值时出现问题

Flutter 在颤振组合中获取3个输入值时出现问题,flutter,dart,flutter-layout,flutter-animation,Flutter,Dart,Flutter Layout,Flutter Animation,现在我用这个方法获取3个输入(A、B和C) Slider( value: A, min: 0, max: 100, divisions: 100, label: 'A', onChanged: (value) { setState( () { A = value.toInt(); }, ); }, ), 我对每个输入都使用了不同的滑块,但我的任务是在饼图中输入3个输入(在饼图中,用户可以通过拖动marker/c

现在我用这个方法获取3个输入(A、B和C)

Slider(
  value: A,
  min: 0,
  max: 100,
  divisions: 100,
  label: 'A',
  onChanged: (value) {
    setState(
      () {
        A = value.toInt();
      },
    );
  },
),
我对每个输入都使用了不同的滑块,但我的任务是在饼图中输入3个输入(在饼图中,用户可以通过拖动marker/courser设置3个值),所有3个输入的组合应该是100,但我没有发现任何类似的小部件,请向我建议任何解决方案。

可能会有所帮助。这是一个滑块,但有两个拇指。它可以完成这项工作,但我认为它不能为第一个范围(0到第一个拇指)和最后一个范围(第二个拇指到100)提供不同的颜色

类滑块扩展StatefulWidget{
@凌驾
_SliderState createState()=>\u SliderState();
}
类_滑块状态扩展状态{
双启动=0.0;
双端=0.0;
双a=0.0;
双b=0.0;
双c=0.0;
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[
范围滑块(
值:范围值(开始、结束),
一旦改变:_handleOnChange,
最小值:0.0,
最高:100.0,
),
正文(“A:$A”),
正文(“B:$B”),
正文(“C:$C”),
],
);
}
void\u handleOnChange(范围值){
最终开始=values.start;
最终结束=值。结束;
最终a=开始;
最终b=结束-开始;
最终c=100.0-结束;
设置状态(){
this.start=start;
this.end=end;
这个a=a;
这个.b=b;
这个.c=c;
});
}
}

Hi,这种方法目前看来还不错。这是收集输入值的正确方法。你在找一个饼图来可视化输入吗?@dumazy不,不是为了可视化,实际上我想把这3个输入放到图上。我不想可视化这些输入,我想把输入放到图/图表上,这样所有3个输入的组合应该是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;
    });
  }
}