2016-07-28 16 views
1

ツールチップを作成しましたが、ツールチップの外側のタッチイベントで閉じる必要があります。しかし、私はまだ何かが押されたもので動作するようにしたいので、私は不透明なビューをしたくありません。React Native - すべてのタッチイベントをキャッチしますが、Touchableはバブリングしません。

私はTouchableWithoutFeedbackに私のアプリをラップ試してみました:

<TouchableWithoutFeedback onPress={(e) => this.onAppTouch(e)}> 

押された要素がTouchableでない場合、これは動作しますが、そうでない場合はイベントがトップレベルonPressまでのバブルを飲み込んでいない取得するようです。

これを動作させる方法はありますか?ありがとう。

編集:これはTouchablesの制限(彼らはジェスチャーを飲み込む)のようです - あなたがあるため、レンダリングのあなたが触れるツールチップの特性を保持しますTouchableHighlightで触れる背景成分後にツールチップコンポーネントをレンダリングする場合https://github.com/facebook/react-native/issues/6796

答えて

0

コンポーネントの順序。

|ツールチップ1 | |ツールチップ2 | |バックグラウンドタッチ可能|

あなたはそれを非表示にするか、それはあなたの状態に応じて示されている場合:

var touchOn = (<TouchableHighlight>Background Component</TouchableHighlight>) 
var touchOff = <Your other component/> 

と状態を制御し、どちらか一方の条件を記述をレンダリングする:

{this.state.openTooltip ? touchOn : touchOff} 
+0

おかげでなく、その問題は、私はまだアプリがタッチに反応することを望んでいる - 例えばツールヒントが開いていて、タッチ可能な他のものが押された場合は、ツールヒントが閉じて、タッチされた場合でもアクションが発生するはずです。タッチ可能な背景がその権利をブロックしますか? –

+0

Hmm soあなたがツールチップをタッチすると、状態を変更してタッチ可能な背景をレンダリングすることができます。その背景をクリックすると、その状態を変更し、その背景を表示しないようにレンダリングを変更します。 – LuisPinto

+0

編集 – LuisPinto

関連する問題