LongPressジェスチャー


LongPressジェスチャー

LongPressジェスチャーは、タッチ可能なコンポーネントに長押しのサポートを提供します。ユーザーがコンポーネントをタップしたまま長押しすると、LongPressがトリガーされます。

プロパティ

プロパティ デフォルト 説明
type "LongPress" 必須 "LongPress"に設定する必要があります。
onLongPressStart コマンドの配列 [] 長押しが最初に検出されたときに実行するコマンドです。
onLongPressEnd コマンドの配列 [] 長押しが終了したときに実行するコマンドです。

onLongPressStart

長押しイベントが発生したときに実行するコマンドです。onLongPressStartのコマンドは、ユーザーが十分な時間ポインターを押し続けた後に実行されます。onLongPressStartのコマンドは、ユーザーがポインターを放すまで実行されます。

生成されるイベントの形式は次のようになります。

"event": {
  "source": {
    "type": "COMPONENT_TYPE", // コンポーネントの型    
    "handler": "LongPressStart",
    ...                     // コンポーネントのソースのプロパティ
  },
  "component": {
    "x": Number,       // コンポーネント内でのアップイベントのX位置(dp)
    "y": Number,       // コンポーネント内でのアップイベントのY位置(dp)
    "width": Number,   // コンポーネントの幅(dp)
    "height": Number,  // コンポーネントの高さ(dp)
  },
  "inBounds": Boolean  // ポインターがコンポーネントの変換後の境界内にある場合はtrue
}

ポインター位置のinBoundsの計算では、重なり合うコンポーネントは考慮されません。

event.sourceのプロパティの詳細については、イベントソースを参照してください。

onLongPressStartイベントハンドラーは、コンポーネントのデータバインディングコンテキスト高速モードで実行されます。

onLongPressEnd

長押しが解放されたときに実行するコマンドです。onLongPressEndのコマンドは、ユーザーがポインターを放した後に実行されます。

生成されるイベントの形式は次のようになります。

"event": {
  "source": {
    "type": "COMPONENT_TYPE", // コンポーネントの型    
    "handler": "LongPressEnd",
    ...                     // コンポーネントのソースのプロパティ
  },
  "component": {
    "x": Number,       // コンポーネント内でのアップイベントのX位置(dp)
    "y": Number,       // コンポーネント内でのアップイベントのY位置(dp)
    "width": Number,   // コンポーネントの幅(dp)
    "height": Number,  // コンポーネントの高さ(dp)
  },
  "inBounds": Boolean  // ポインターがコンポーネントの変換後の境界内にある場合はtrue
}

ポインター位置のinBoundsの計算では、重なり合うコンポーネントは考慮されません。

event.sourceのプロパティの詳細については、イベントソースを参照してください。

onLongPressEndイベントハンドラーは、コンポーネントのデータバインディングコンテキストで通常モードで実行されます。

LongPressジェスチャーのイベントシーケンス

長押しイベントでは、次のイベントハンドラーがトリガーされます。

  1. onDown
  2. onMove(該当する場合)
  3. onCancel(長押しが認識された場合)
  4. onLongPressStart
  5. onLongPressEnd(ユーザーがコンポーネントを放したとき)

ジェスチャーが長押しとして認識されるためにユーザーがコンポーネントを押し続ける必要のある時間は、オペレーティングシステムとユーザー補助機能の設定によって決まります。

LongPressジェスチャーの例

以下は、LongPressジェスチャーの動作を示す例です。タッチ可能なコンポーネントの各ハンドラーは、コンポーネントのIDと実行されたハンドラーの名前を表示するコマンドを実行します。押してすぐに放したときは、onPressハンドラーが実行されます。コンポーネントをしばらく押したままにすると、onLongPressStartハンドラーが実行され、放したときにonLongPressEndが実行されます。



このページは役に立ちましたか?

最終更新日: 2025 年 12 月 04 日