LongPressジェスチャー



LongPressジェスチャー

LongPressジェスチャーでは、タッチ可能なコンポーネントを長押しできます。ユーザーがコンポーネントに触れて長押し状態を維持すると、LongPressがトリガーされます。

プロパティ

プロパティ デフォルト 説明
type "LongPress" 必須 値は「LongPress」のみです。
onLongPressStart コマンド配列 [] 長押しが最初に検出されたときに実行するコマンドです。
onLongPressEnd コマンド配列 [] このハンドラーが終了したときに実行するコマンドです。

onLongPressStart

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

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

"event": {
  "source": {
    "type": "COMPONENT_TYPE", // コンポーネントの型    
    "handler": "LongPressStart",
    ...                     // コンポーネントのソースプロパティ  
  },
  "component": {
    "x": Number,       // コンポーネントのupイベントのX位置(dp)    
    "y": Number,       // コンポーネントのupイベントの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,       // コンポーネントのupイベントのX位置(dp)    
    "y": Number,       // コンポーネントのupイベントの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(ユーザーがコンポーネントを離したとき)

ジェスチャーの長押し判定のためにユーザーがコンポーネントを押し続ける時間は、オペレーティングシステムとアクセシビリティの設定によって決まります。