我使用的是Flutter的Material滑块。dart,官方小部件支持 onChanged
, onChangeEnd
和 { {1}} 。这些开始和结束回调有些奇怪,因为它们在快速滑动滑块以及仍然保持的滑块的触摸和滑动时触发,然后在释放滑块时再次触发。我真正需要知道的是何时完全释放滑块(通过快速点击或触摸并滑动)。
因此,我找到了一种编辑onChangeStart
的方式,该方式可以将需要的状态输出到控制台。我查看了所有handleEvent调用,并添加了以下内容以了解何时触摸上升或下降
(使用event.runtimeType 查看更改):
.../flutter/packages/flutter/lib/src/Material/slider.dart
但是现在我需要以某种方式通过回调将数据从小部件中取出。回调可以类似于前面提到的三个实例中的任何一个,例如onChangeStart或onChangeEnd,但是我不确定在哪里需要创建所有回调。有人可以帮我指出如何添加吗?
答案 0 :(得分:1)
您将必须添加类似于Slider
的{{1}}类的其他成员,并将它们添加到构造函数中。
当您想触发新事件时,可以调用它们,类似于:final ValueChanged<double> onChangeStart;
(我添加了widget?.onChangeStart(_lerp(value));
,以防您的回叫为空。同样,您可以断言它不是像:?
)
除了-您可以使用assert(widget.onChangeStart != null);
而不是event.runtimeType == PointerDownEvent