GestureRecognizer 清理
概述
#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