(仅限iOS)<TouchableOpacity>如果在<ScrollView>内部,则不响应:

  • 它可以在模拟器中正常运行,但不能在真实设备
  • 中运行
  • keyboardShouldPersistTaps="always"没有任何区别
  • 部分代码:<ScrollView style={styles.scrollView}> <TouchableOpacity style={styles.xButton} onPress={() => this._onClose()}>

  • 有什么建议么?

    --- 代码更新 -----
    <ScrollView style={styles.scrollView}>
       <TouchableOpacity style={styles.xButton} onPress={() => this._onClose()}>
        <Image style = {styles.xImg} source = {require('../../images/xbtn.png')}/>
       </TouchableOpacity>
         {this._renderPricing()}
         {this._renderServices()}
     </ScrollView>
    

    样式看起来像这样:
    scrollView:{
        width: width,
        height: height,
    }, xButton: {
        position: 'absolute',
        zIndex: 1,
        marginTop: '1%',
        marginRight: '3%',
        alignSelf: 'flex-end',
    
    },xImg: {
        resizeMode: 'contain',
        aspectRatio: .6,
        opacity: 0.5,
    },
    

    最佳答案

    问题已解决。这是由于在我的单独渲染方法中this._renderPricing等更改状态的次数过多-因此,JS线程已被占用,因此TouchableOpacity无法响应触摸事件。如果需要,请参见RN documentation进行更详细的说明。非常感谢您的回答。

    关于ios - TouchableOpacity onPress在ScrollView中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46568854/

    10-10 08:32