我遇到了一个问题,嵌套可触摸对象中的双击(同时触摸)到达父可触摸对象。
在下面的示例中,可触摸对象嵌套了三层深度。当我按下最深的可触摸对象(蓝色)时,控制台正确打印"蓝色"。当我按下分别打印"绿色"和"红色"的其他图层时,它的行为也正确。
当我同时触摸和释放两次时,就会出现奇怪的行为 - 然后触摸层的 onPress 根本不会被调用。相反,当两次触摸都结束时,父 Touchable 只会收到一次触摸。
此外,当我在最外层(红色,没有父层可触摸)上同时执行两次触摸时,该层将收到触摸。从我的角度来看,这似乎更正确,但偏离了上述嵌套Tocuables中的奇怪行为。
<View style={{flex:1, backgroundColor:"#666666"}}>
<TouchableHighlight onPress={()=>{console.log("red")}}>
<View style={{backgroundColor:"#FF0000", height:300}}>
<TouchableHighlight onPress={()=>{console.log("green")}}>
<View style={{backgroundColor:"#00FF00", height:200}}>
<TouchableHighlight onPress={()=>{console.log("blue")}}>
<View style={{backgroundColor:"#0000FF", height:100}} />
</TouchableHighlight>
</View>
</TouchableHighlight>
</View>
</TouchableHighlight>
</View>
我复制了你的代码,我有点不知道它是否真的看起来像你想要实现的东西:https://snack.expo.io/@zvona/onpressin
零食不允许使用多次触摸,但我做了一个长镜头:使用onPressIn
而不是onPress
。