私のタッチイベントの座標を取得する方法を教えてください。だから私はディスプレイ内のどこかをタップし、私はそれが起こった場所のX、Yの位置を取得することができます。ネイティブに反応して、私のタッチイベントの座標を取得します。
3
A
答えて
14
ビューオブジェクトをTouchableOpacityまたは他のTouchableコンポーネントでラップする必要があります。 TouchableOpacityを使用すると、pressイベントが渡されるonPressの小道具があります。このプレスイベントから、プレスのx、y座標にアクセスできます。
擬似コードは次のようになります。
render() {
....
<TouchableOpacity onPress={(evt) => this.handlePress(evt) }
.... >
<View></View>
</TouchableOpacity>
}
handlePress(evt){
console.log(`x coord = ${evt.nativeEvent.locationX}`);
}
0
あなたがそのようなTouchableOpacityとしてボタンによって提供されるものよりも柔軟たい場合は、あなたがする必要があります(例えば、あなたがジェスチャー移動イベントをしたい場合。) gesture responder systemを使用してください。これにより、コンポーネントはタッチイベントに登録することができます。
すべてのジェスチャーレスポンスイベントハンドラーのサンプル実装が含まれていますが、すべてのタッチイベントとムーブイベントにサブスクライブするだけで、基本的な機能を提供するために私のビューでそのほとんどをコメントアウトしています。ブール関数の矢印構文を説明し、私のカスタムonTouchEvent(name, ev)
関数を呼び出すための古き良きbind()
構文を使用します。
import React, {Component} from 'react';
import {StyleSheet, Text, View} from 'react-native';
export class Battlefield extends Component {
constructor(props) {
super(props);
}
// The event 'ev' is of type 'GestureResponderEvent'. Documentation for ev.nativeEvent:
// https://facebook.github.io/react-native/docs/gesture-responder-system.html
onTouchEvent(name, ev) {
console.log(
`[${name}] ` +
`root_x: ${ev.nativeEvent.pageX}, root_y: ${ev.nativeEvent.pageY} ` +
`target_x: ${ev.nativeEvent.locationX}, target_y: ${ev.nativeEvent.locationY} ` +
`target: ${ev.nativeEvent.target}`
);
}
render() {
return (
<View
style={styles.container}
onStartShouldSetResponder={(ev) => true}
// onMoveShouldSetResponder={(ev) => false}
onResponderGrant={this.onTouchEvent.bind(this, "onResponderGrant")}
// onResponderReject={this.onTouchEvent.bind(this, "onResponderReject")}
onResponderMove={this.onTouchEvent.bind(this, "onResponderMove")}
// onResponderRelease={this.onTouchEvent.bind(this, "onResponderRelease")}
// onResponderTerminationRequest={(ev) => true}
// onResponderTerminate={this.onTouchEvent.bind(this, "onResponderTerminate")}
>
<Text>Click me</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
position: 'relative',
height: "100%",
width: "100%",
backgroundColor: 'orange'
}
});
これはまだあなたのための十分な機能ではない場合(例えば。あなたは、マルチタッチ情報が必要な場合)、PanResponderを参照してください。
関連する問題
- 1. タッチイベントのタッチスタート座標の取得
- 2. ネイティブで反応しているユニットテストのタッチイベント
- 3. 反応ネイティブのデバイストークンを取得
- 4. AppBarLayout(標高= 0dp)はタッチイベントに反応しません(クリック)
- 5. サービス内のタッチイベント(座標、モーションイベントなど)の取得
- 6. 反応し、ネイティブのリストビューラインフィード
- 7. アップルウォッチに反応し、ネイティブ
- 8. matlabのプロットをクリックしてy座標を取得します
- 9. ネイティブAndroidとGenymotionに反応します
- 10. XとYのピクセル座標取得私はいくつかの画像データを反復していますgetImageData
- 11. 回転した左上座標と左座標を取得
- 12. ネイティブAndroidのデバッグキーストアに反応しない
- 13. フレックスボックスはネイティブで反応しますか?
- 14. 新しい反応以前のバージョンの反応ネイティブのネイティブプロジェクト
- 15. 反応-ネイティブ私はこの構文でフェッチを使用してみました
- 16. ピンチズーム - タッチ座標の取得
- 17. レイトレーシングのピクセル座標からuvw座標を取得する
- 18. 屋内でGPS座標を取得しています
- 19. Openstreetmapをダブルクリックして座標を取得するには?
- 20. openGL:glrotateの後に座標を取得
- 21. LongTouchListenerを使用して座標の座標を取得するにはどうすればよいですか?
- 22. ネイティブ・カスタム・ビューに反応します。ネイティブ・プロップのpropTypeはありません。
- 23. 反応したネイティブのIOS QuickLookフレームワークを追加しました
- 24. 現在のマウス座標を取得します
- 25. matplotlibの輪郭から座標を取得しますか?
- 26. 座標でセルを取得
- 27. ドロップ時にドラッグシャドー座標を取得しますか?
- 28. タッチ座標をビュー(ScreenToClientに相当)に対して取得
- 29. イメージの一部を選択してjQueryで座標を取得します
- 30. 反応ネイティブのアンドロイドのバックグラウンドサービス
しかし、私がマウスのイベントを押すと画像が点滅し、これを提案できます。 – Lavaraju
こんにちは、ありがとう、それは私のために便利です..しかし、私はこのタイプが欲しい、このリンクをクリックすることができます.... http://stackoverflow.com/questions/41743667/react-nativehow-can-i-get-特定の位置をクリックしたときのドット画像または画像 – Lavaraju