如何为Flutter的Material Slider Widget添加新的回调以访问触摸有效/无效状态?

时间:2019-05-15 17:58:37

标签: flutter event-handling material

我使用的是Flutter的Material滑块。dart,官方小部件支持 onChanged onChangeEnd { {1}} 。这些开始和结束回调有些奇怪,因为它们在快速滑动滑块以及仍然保持的滑块的触摸和滑动时触发,然后在释放滑块时再次触发。我真正需要知道的是何时完全释放滑块(通过快速点击或触摸并滑动)。

因此,我找到了一种编辑onChangeStart的方式,该方式可以将需要的状态输出到控制台。我查看了所有handleEvent调用,并添加了以下内容以了解何时触摸上升或下降 (使用event.runtimeType 查看更改):

.../flutter/packages/flutter/lib/src/Material/slider.dart

但是现在我需要以某种方式通过回调将数据从小部件中取出。回调可以类似于前面提到的三个实例中的任何一个,例如onChangeStart或onChangeEnd,但是我不确定在哪里需要创建所有回调。有人可以帮我指出如何添加吗?

1 个答案:

答案 0 :(得分:1)

您将必须添加类似于Slider的{​​{1}}类的其他成员,并将它们添加到构造函数中。

当您想触发新事件时,可以调用它们,类似于:final ValueChanged<double> onChangeStart;(我添加了widget?.onChangeStart(_lerp(value));,以防您的回叫为空。同样,您可以断言它不是像:?

除了-您可以使用assert(widget.onChangeStart != null);而不是event.runtimeType == PointerDownEvent