在flutter中组合3个输入值时出现问题。

问题描述 投票:0回答:1

现在我用这种方法取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,但我没有找到任何像这样的部件,请给我建议任何解决方案。enter image description here

flutter dart flutter-layout flutter-animation
1个回答
1
投票

也许是 范围滑块 可以帮助。这是一个滑块,但有两个拇指。它可以做到这一点,但我不认为它可以为第一个范围(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;
    });
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.