<

GestureRecogizer のクリーンアップ

まとめ

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 ドキュメント:

  • OneSequenceGestureRecognizer

関連する PR:

  • addAllowedPointer() のオーバーライドを修正