概述

#

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