2016-12-30 30 views
1

私はユーザーがボタンに触れたときにサウンドを再生する反応するネイティブアプリを設定しようとしています。これは、一度に1つのボタンに触れるとうまく動作します。反応したネイティブのonPressイベントを同時に検出するにはどうすればよいですか?

しかし、ただ1つのonPressIn関数しか実行できないようです。しかし、私は同時に複数のボタンを押すことができるようにしたい。これは、長い音符を保持し、その上で急な打楽器音を鳴らしたい場合に使用します。複数のボタンを検出する方法はあります一度押し、

<TouchableHighlight onPressIn={this.padPress.bind(this, padNum)} underlayColor="gray"> 
    <View style={[padWidth]}></View> 
</TouchableHighlight> 

私のコンポーネントは次のようになり?または、この機能を実現する別の方法ですか?

ありがとうございます!

答えて

2

私はあなたが必要なものを信じてパンレスポンダ

ドキュメントされていますhttps://facebook.github.io/react-native/releases/next/docs/panresponder.html

PanResponderは、単一のジェスチャーにいくつかのタッチを調整します。これは、ワンタッチジェスチャーを余分なタッチに対して弾力性を持たせ、簡単なマルチタッチジェスチャーを認識するために使用することができます。

+0

感謝にこの答えを確認するが、これはどちらか動作しませんでした。私は 'onPanResponderGrant'と' onPanResponderMove'に登録しようとしましたが、どちらも最初のタッチイベントにしか応答しません。私が指を持ち、同じビューをもう一度クリックすると、機能は再開しません。その他の提案はありますか? –

1

onTouchStartを使用すると、画面上のさまざまなコンポーネントで同時にonPressを実現できるViewコンポーネントのonTouchEnd小道具を使用できます。コードスニペットと詳細な説明については

https://stackoverflow.com/a/42779656/2131857

関連する問題