DoublePressジェスチャー
DoublePressジェスチャーを使用すると、タッチ可能なコンポーネントをダブルタップできるようになります。ユーザーがシステムで定義された制限時間内にコンポーネントを2回タップすると、DoublePressがトリガーされます。
プロパティ
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
type |
"DoublePress" | 必須 | "DoublePress"のみ |
onDoublePress |
コマンドの配列 | [] | ダブルタップで実行するコマンドです。 |
onSinglePress |
コマンドの配列 | [] | シングルタップで実行するコマンドです。 |
onDoublePress
ダブルタップのイベントが検出されたときに実行するコマンドです。onDoublePressコマンドは、onCancelイベントハンドラーの後に実行されます。onDoublePressイベントハンドラーとonSinglePressイベントハンドラーは相互に排他的です。このタッチイベントはonSinglePressまたはonDoublePressのいずれかをトリガーします。両方はトリガーしません。
生成されるイベントの形式は次のようになります。
"event": {
"source": {
"type": "COMPONENT_TYPE", // コンポーネントの型
"handler": "DoublePress",
... //コンポーネントのソースプロパティ
},
"component": {
"x": Number, // コンポーネントのupイベントのX位置(dp)
"y": Number, // コンポーネントのupイベントのY位置(dp)
"width": Number, // コンポーネントのdp単位での横幅
"height": Number, // コンポーネントのdp単位での縦幅
}
}
event.sourceの詳細については、イベントソースを参照してください。
onDoublePressハンドラーは、コンポーネントのデータバインディングコンテキストで通常モードで実行されます。
onSinglePress
シングルタップが検出され、ダブルタップの可能性がなくなったときに実行するコマンドです。onSinglePressイベントハンドラーとonDoublePressイベントハンドラーは相互に排他的です。このタッチイベントはonSinglePressまたはonDoublePressのいずれかをトリガーします。両方はトリガーしません。
生成されるイベントの形式は次のようになります。
"event": {
"source": {
"type": "COMPONENT_TYPE", // コンポーネントの型
"handler": "SinglePress",
... //コンポーネントのソースプロパティ
},
"component": {
"x": Number, // コンポーネントのupイベントのX位置(dp)
"y": Number, // コンポーネントのupイベントのY位置(dp)
"width": Number, // コンポーネントのdp単位での横幅
"height": Number, // コンポーネントのdp単位での縦幅
}
}
event.sourceの詳細については、イベントソースを参照してください。
onSinglePressハンドラーは、コンポーネントのデータバインディングコンテキストで通常モードで実行されます。
DoublePressジェスチャーのイベントシーケンス
シングルタップイベントは、ユーザーがコンポーネントを1回タップし、ダブルタップの制限内で2回目のタップをしない場合に発生します。シングルタップイベントでは、次のイベントハンドラーがトリガーされます。
onDownonMove(該当する場合)onUponPressonSinglePress(短い遅延の後)
ダブルタップイベントは、ユーザーがコンポーネントを短時間に連続して2回タップしたときに発生します。ダブルタップイベントでは、次のイベントハンドラーがトリガーされます。
onDownonMove(該当する場合)onUponPressonDown(2回目のタップの開始)onMove(該当する場合)onCancel(ダブルタップを特定)onDoublePress
オペレーティングシステムおよびアクセシビリティの設定によって、ダブルタップの時間制限が決まります。
DoublePressの例
以下は、DoublePressジェスチャーの例です。タッチ可能な各コンポーネントハンドラーは、コンポーネントのIDと実行したハンドラーの名前を表示するコマンドを実行します。1回押して放すとonPressハンドラーが実行され、その後にonSinglePressが実行されます。短時間で2回押すと、onDoublePressが実行されます。
以下の例では、LongPressジェスチャーを同じTouchWrapperに追加しています。1回押すと、onPress、onSinglePressの順に実行されます。2回押すと、onPress、onDoublePressの順に実行されます。長押しするとonLongPressStartが実行され、押すのをやめるとonLongPressEndが実行されます。
関連トピック
最終更新日: 2025 年 12 月 02 日