flutter - 如何在 flutter 中调用圆形 slider 的值?

标签 flutter dart package slider

我刚刚习惯了 flutter ,我用了https://pub.dev/packages/sleek_circular_slider来自 flutter 包的圆形 slider 包,
我已经创建了我的布局并给出了 onChange命令。 slider 工作正常。现在,我想在我的其他方法中使用该 slider 值......我尝试使用很多东西,但它只是不起作用。请让我现在如何从幻灯片中调用值并使用它?
还有innerWidget参数,其文档说正在做这项工作,但我不知道如何使它工作????

这里是`

class WeightSlider extends StatefulWidget {
  @override
  _State createState() => _State();
}

class _State extends State<WeightSlider> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: <Widget>[
          Center(child: slider),
        ],
      ),
    );
  }
  final slider = SleekCircularSlider(
    min: 0,
    max: 120.0,
    initialValue: 60,
    appearance: CircularSliderAppearance(
        size:279,
        startAngle: 120,
        angleRange: 300,
        animationEnabled: true,
        infoProperties: InfoProperties(
          bottomLabelText: 'kg',
          bottomLabelStyle: TextStyle(
            fontSize: 25,
          ),
          mainLabelStyle: TextStyle(
            fontSize: 70,
            fontFamily: 'RalewaySemiBold',
          ),
          modifier: (double value) {
            final roundedValue = value.ceil().toInt().toString();
            return '$roundedValue ';
          },
        ),
        customColors: CustomSliderColors(
          hideShadow: true,
          trackColor: Color(0XFFFFF176),
          dotColor: Color(0XFFFAFAFA),
          progressBarColor: Color(0XFF00E676),
        ),
        customWidths: CustomSliderWidths(
          trackWidth: 5,
          progressBarWidth: 20,
          handlerSize: 4,
        )
    ),
    onChangeEnd: (double weight){
      return weight;
    },
  );

  }

`我的代码...

最佳答案

我能够在提供程序类的帮助下获取 slider 的值并随着值的变化更新 UI,因为您不能在圆滑的圆形 slider 的预定义方法中使用 setState。

1)需要导入provider package

2)然后,更新提供者类中的值

3) 使用 Consumer 小部件来监听变化并更新 UI。

示例代码:

提供者类

import 'package:flutter/material.dart';

class ProviderClassName with ChangeNotifier {
  int value = 0;

  void setValue(int newValue) {
    value = newValue;
    notifyListeners();
  }

  int getValue() {
    return value;
  }
}

圆滑的圆形 slider
onChange: (double value) {
  Provider.of<ProviderClassName>(context, listen: false).setValue(value.floor().toInt());
  // callback providing a value while its being changed (with a pan gesture)
},

您想在哪里使用该值
Consumer<ProviderClassName>(
          builder: (context, providerClassName, child) => Text(
              '${providerClassName.getValue()}')

关于flutter - 如何在 flutter 中调用圆形 slider 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59836970/

相关文章:

flutter - Flutter 的 pubspec.yaml 中依赖版本号前的脱字符号 (^) 是什么?

forms - 使用 appBar 图标打开表单

android - Android 应用程序的安装时间?

dart - 用dart解码JSON

python - 尝试在 Anaconda 中安装软件包时出现错误解释器错误

java - URLClassLoader 和包私有(private)方法的可访问性

android - 在flutter中从.env文件加载api key 到AndroidManifest.xml

firebase - Flutter 中使用 firebase 身份验证进行电子邮件 OTP 验证

flutter - setState 第一次不更新 - Flutter

firebase - Flutter和Firebase组合中的异步行为问题