Syncfusion自定义widget onchanged参数不带void函数onPressed

Syncfusion cutom widget onchanged parameter doesnot take void Function onPressed

我正在尝试创建一个连续 4 个的自定义垂直滑块,并且我正在使用 Syncfusion 包,但是,当我创建一个客户小部件时,onchanged 参数在传递时不接受 Function 变量。

SfSliderTheme(
  data: SfSliderThemeData(
    thumbColor: Colors.blue[200],
    activeTrackHeight: kactive_slider_height,
    inactiveTrackHeight: kinactive_slider_height,
    activeTrackColor: kactive_slider_track_color,
    inactiveTrackColor: Colors.black,
    trackCornerRadius: -1.0,
  ),
  child: SfSlider.vertical(
    min: 0.0,
    max: 100.0,
    value: value,
    onChanged: (value) {},
  ),
),

这是我的代码,我多次使用,我想创建一个自定义小部件,但 onChanged: 不采用 void Function onPressed。有办法吗?

看起来 SfSlider.vertical 确实接受了 ValueChanged 函数,但我认为您看到的错误是因为没有足够的类型信息?根据文档,似乎没有与 SfSlider 相关联的泛型,因此您应该使用的回调将使用 dynamic,例如 (dynamic value) { ... }

  child: SfSlider.vertical(
    min: 0.0,
    max: 100.0,
    value: value,
    onChanged: (dynamic value) {},
  ),

在与滑块交互时,我们将在 onChanged 方法中获取新值。这样我们就可以用新值更新滑块拇指。新值是dynamic的类型,因为slider支持数字和日期时间类型。

double value = 50.0;
SfSlider.vertical(
    min: 0.0,
    max: 100.0,
    value: value,
    onChanged: (dynamic newValue) {
        setState(() {
           value = newValue;
        });
   },
)