我正在创建一个滑块小部件的自定义小部件,其中有 onChange 功能
我不知道如何将此函数传递给自定义小部件,因为它有参数
当函数没有参数时很容易传递
喜欢
最终 VoidCallBack ontap;
class CustomSlider extends StatelessWidget {
final double value;
// how to pass voidcallback with argument here
const CustomSlider({Key? key,required this.value}) : super(key: key);
@override
Widget build(BuildContext context) {
return SfSlider.vertical(
min: 50,
max: 250.0,
value: value,
interval: 20,
showTicks: true,
showLabels: true,
enableTooltip: true,
minorTicksPerInterval: 1,
onChanged: (dynamic value) {
// how to deal with this function
},
);
}
}
要将带有参数的函数传递给 Flutter 中的自定义小部件,您可以在自定义小部件中定义函数类型作为参数。
在您的情况下,由于onChanged函数采用动态值作为参数并返回 void,因此您可以在CustomSlider小部件中按如下方式定义它:
现在,当您使用CustomSlider时,您可以将函数传递给onChanged参数:
在此示例中,_sliderValue是一个状态变量,每当滑块值发生变化时就会更新。setState调用确保小部件使用新的滑块值重建。请注意,您可能需要确保传递给 onChanged 的函数需要 Slider 将发出的类型的参数(在本例中可能是 double)。
或者
如果需要返回值: