手势识别器清理
概述
#OneSequenceGestureRecognizer.addAllowedPointer()
已更改为接受 PointerDownEvent
类型,与其超类一致。此前,它接受更通用的 PointerEvent
类型,这是不正确的。
背景
#框架始终只将 PointerDownEvent
对象传递给 addAllowedPointer()
。将 OneSequenceGestureRecognizer.addAllowedPointer()
声明为接受更通用的类型会造成混淆,并导致 OneSequenceGestureRecognizer
的子类必须将其参数转换为正确的类。
变更说明
#以前的声明强制 OneSequenceGestureRecognizer
的派生类像这样重写 addAllowedPointer()
dart
class CustomGestureRecognizer extends ScaleGestureRecognizer {
@override
void addAllowedPointer(PointerEvent event) {
// insert custom handling of event here...
super.addAllowedPointer(event);
}
}
新的方法声明将导致此代码出现以下错误消息
super.addAllowedPointer(event); The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
#argument_type_not_assignable
迁移指南
#迁移前的代码
dart
class CustomGestureRecognizer extends ScaleGestureRecognizer {
@override
void addAllowedPointer(PointerEvent event) {
// insert custom handling of event here...
super.addAllowedPointer(event);
}
}
迁移后的代码
dart
class CustomGestureRecognizer extends ScaleGestureRecognizer {
@override
void addAllowedPointer(PointerDownEvent event) {
// insert custom handling of event here...
super.addAllowedPointer(event);
}
}
时间线
#发布版本:2.3.0-13.0.pre
稳定版本:2.5
参考资料
#API 文档
相关 PR