手势识别器清理
摘要
#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
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2024-04-04。 查看源代码 或 报告问题.