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
除非另有說明,否則本網站上的文件均反映 Flutter 的最新穩定版本。頁面最後更新於 2024-04-04。 檢視原始碼 或 回報問題。