我刚刚习惯了 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/