2016-07-28 90 views
1

我做了一個工具提示,我希望它在工具提示之外的觸摸事件上關閉。但是我不想做出不透明的觀點,因爲我仍然希望觸摸能夠處理任何被按下的內容。React Native - 捕捉所有的觸摸事件,但觸摸的不冒泡

我想包裝我的應用程序在TouchableWithoutFeedback

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

這個工作,如果按下元素不是Touchable,但在其他事件似乎得到吞嚥並不能上升到頂層onPress

有沒有辦法讓這個工作或其他替代方案?謝謝。

編輯:這似乎是Touchables的限制(他們吞了手勢) - https://github.com/facebook/react-native/issues/6796

回答

0

如果用TouchableHighlight你會保留,因爲渲染的可觸摸提示特性的可觸摸的背景組件後使你的工具提示組件你組件的順序。

所以你將有:

| Tooltip1 | | Tooltip2 | |背景可觸摸|

如果要隱藏或顯示它取決於你的狀態:

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

而且控制狀態,並呈現一個或另一個寫的條件:

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

謝謝,但在問題是我仍然希望應用程序對觸摸做出反應 - 例如如果工具提示被打開並且其他可觸摸的東西被按下,那麼工具提示應該關閉,並且該動作應該在任何被觸摸的情況下發生。觸摸式背景會阻止該權利? –

+0

嗯所以如果你觸摸一個工具提示,它會打開,你可以改變狀態,然後渲染一個可觸摸的背景,一旦你點擊那個背景,你改變狀態,改變渲染,不顯示該背景 – LuisPinto

+0

看看編輯 – LuisPinto