コンテンツにスキップ

GestureRecognizer クラス

ポインター列を監視し、それがタップ/ドラッグ等の意味あるジェスチャかを判定する状態機械の基底。 AddPointer で Down を受けると、共有の PointerRouter へ後続イベントの 購読を登録し、GestureArenaManager のアリーナへ参加する。以降のイベントは ルータ経由で HandleEvent に届く。

名前空間: FloatSoda.Gesture
アセンブリ: FloatSoda.dll

public abstract class GestureRecognizer : IGestureArenaMember, IDisposable

object ← GestureRecognizer

PanGestureRecognizer, TapGestureRecognizer

IGestureArenaMember, IDisposable

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

参加するアリーナ。Bind で注入される。

protected GestureArenaManager Arena { get; }

GestureArenaManager

後続イベントを購読するルータ。Bind で注入される。

protected PointerRouter Router { get; }

PointerRouter

このメンバーがアリーナの勝者になったとき呼ばれる。

public abstract void AcceptGesture(int pointer)

pointer int

勝敗が確定したポインターの識別子。

Down 受理時にサブクラスが初期状態を作る。

protected abstract void AddAllowedPointer(PointerEvent downEvent)

downEvent PointerEvent

受理したDownフェーズのポインターイベント。

Down イベントを受けて監視を開始する入口。ルータ購読とアリーナ参加を行い、 サブクラスの AddAllowedPointer を呼ぶ。

public void AddPointer(PointerEvent downEvent)

downEvent PointerEvent

監視を開始するDownフェーズのポインターイベント。

Down以外のイベントを指定した場合は何も行いません。

追跡中のすべてのポインターについてアリーナへ辞退を宣言し、ルータの購読を解除します。

public virtual void Dispose()

押下中に破棄された認識器が、後続の Up でコールバックを呼んだり、アリーナに残って ほかの認識器の勝利を妨げたりしないようにします。Flutter の OneSequenceGestureRecognizer.dispose に相当します。

ルータ経由で届く後続イベント(Down/Move/Up/Cancel)を処理する。

protected abstract void HandleEvent(PointerEvent pointerEvent)

pointerEvent PointerEvent

処理するポインターイベント。

このメンバーが敗者になった(他が勝った/自分が辞退した)とき呼ばれる。

public abstract void RejectGesture(int pointer)

pointer int

勝敗が確定したポインターの識別子。

アリーナへ勝敗を宣言する。

protected void Resolve(int pointer, GestureDisposition disposition)

pointer int

勝敗を宣言するポインター識別子。

disposition GestureDisposition

宣言する受理または辞退の状態。

このポインターの購読を解除する(勝敗確定後の後始末)。

protected void StopTrackingPointer(int pointer)

pointer int

購読を解除するポインター識別子。