我正在反应本机TouchableOpacity内渲染相机视图,如何使其可单击?
相同版本的代码在iOS上运行良好,touchableOpacity可单击并产生正确的输出
<TouchableOpacity style={{width:'100%', height:300}} onPress={() =>alert("hey")}>
<Camera
style={{ height: 300, width: '100%', display: this.state.camera }}
type={this.state.type}
autoFocus={'on'}
ratio={'4:3'}
focusDepth={0}
ref={(ref) => { this.camera = ref }}>
</Camera>
</TouchableOpacity>
我希望在我按TouchableOpacity时,输出为“嘿”的警报,但我在android上什么也没有得到,但在iOs上得到“嘿”
答案 0 :(得分:1)
这是因为TouchableOpacity行为在iO和Android之间有所不同。一个快速的解决方法是将Android中的TouchableOpacity替换为TouchableWithoutFeedback。这是一种实现方法:
const Touchable = Platform.select({ ios: TouchableOpacity, android: TouchableWithoutFeedback });
然后只需使用此常量来包装您的Camera视图。
PS:确保从react-native模块导入了TouchableOpacity,TouchableWithoutFeedback和Platform。