我目前正在学习 Flutter,在与 slider 的交互结束后显示 Snackbar 时遇到了一些问题(换句话说,最终值是在用户将手指从 slider 上移开时设置的)。我无法在 onChange
中调用我的 _showSnackBar()
方法,因为 snackbar 被创建并显示了很多次,一个接一个。
只有在交互完成后我才能调用方法吗?我正在考虑发出拉取请求并添加类似 onInteractionEnded
回调属性的内容,但我想先找出另一种方法。
这是我的代码供引用。
class _MySliderState extends State<MySlider> {
int _value = 2;
@override
Widget build(BuildContext context) {
return Slider(
min: 0.0,
max: 4.0,
divisions: 4,
value: (_value * 1.0),
onChanged: (double value) {
setState(() {
_value = value ~/ 1;
});
_showSnackBar();
},
);
}
void _showSnackBar() {
var snackbar = SnackBar(content: const Text('Slider value changed'));
Scaffold.of(context).showSnackBar(snackbar);
}
}
谢谢。
最佳答案
onChangeStart
和 onChangeEnd
最近被添加到 Slider
https://github.com/flutter/flutter/pull/17298
更改应该已经在 master 中可用。
https://stackoverflow.com/questions/50307384/