我做了一个工具提示,我想让它关闭工具提示之外的触摸事件。但是我不想制作不透明的视图,因为我仍然希望触摸能够处理任何被按下的内容。
我尝试将应用程序包装在TouchableWithoutFeedback
:
<TouchableWithoutFeedback onPress={(e) => this.onAppTouch(e)}>
如果按下的元素不是Touchable
,则此方法有效,但是此事件似乎被吞下并且没有冒泡到顶级onPress
。
有没有办法让这个工作或另类?感谢。
编辑:这似乎是Touchables的限制(他们吞下手势) - https://github.com/facebook/react-native/issues/6796
答案 0 :(得分:0)
如果使用TouchableHighlight在可触摸背景组件之后渲染工具提示组件,则由于组件的渲染顺序,您将保留可触摸的工具提示特性。
所以你会:
| Tooltip1 | | Tooltip2 | |背景可触摸|
如果你想隐藏它或根据你的状态显示它:
var touchOn = (<TouchableHighlight>Background Component</TouchableHighlight>)
var touchOff = <Your other component/>
控制状态并渲染一个或另一个写条件:
{this.state.openTooltip ? touchOn : touchOff}