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;
});
},
)
我正在尝试创建一个连续 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;
});
},
)