TouchableOpacity onPress 在 ScrollView 中不起作用
TouchableOpacity onPress doesn't work inside ScrollView
(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>
如果在 <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 以获得更详细的信息如果需要解释。非常感谢您的回答。