GestureRecognizer 清理
OneSequenceGestureRecognizer 子類別應該 覆寫 `addAllowedPointer` 以接收 `PointerDownEvent`
摘要
#
OneSequenceGestureRecognizer.addAllowedPointer() 已修改為接收
PointerDownEvent,與其父類別一致。先前它接受較為
通用的 PointerEvent 類型,這是不正確的。
背景說明
#
框架實際上只會傳遞 PointerDownEvent 物件給
addAllowedPointer()。將
OneSequenceGestureRecognizer.addAllowedPointer() 宣告為接受更通用的
類型容易造成混淆,並導致 OneSequenceGestureRecognizer 子類別
必須將其參數轉型為正確的類別。
變更說明
#
先前的宣告強迫 OneSequenceGestureRecognizer 的子類別
必須像這樣覆寫 addAllowedPointer():
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
遷移指南
#遷移前的程式碼:
class CustomGestureRecognizer extends ScaleGestureRecognizer {
@override
void addAllowedPointer(PointerEvent event) {
// insert custom handling of event here...
super.addAllowedPointer(event);
}
}
遷移後的程式碼:
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:
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.0. Page last updated on 2026-06-14. View source or report an issue.